Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Блокирование нового окна при клике на флеш в ИЕ (http://www.flasher.ru/forum/showthread.php?t=122516)

ZoNT 12.03.2009 17:19

Блокирование нового окна при клике на флеш в ИЕ
 
Есть баннер. При клике на кнопку в браузере открывается новое окно. В ИЕ новое окно блокируется (в остальных браузерах не блокируется). Кто-нибудь знает как обойти?
В AS2 обходилось назначением открытия нового окна не на on(press), а на on(release).
В AS3 пробовал и MouseEvent.CLICK, и MOUSE_UP и MOUSE_DOWN - результат одинаковый.

Вот код AS2 (не блокируется):
Код AS1/AS2:

on (release) {
      getURL(url,"_blank");
}

Вот код AS3 (блокируется):
Код AS3:

function callLink(event:MouseEvent):void {
        try{
                var request:URLRequest = new URLRequest(url);
                navigateToURL(request, '_blank');
        } catch (e:Error) {
                trace("Error occurred: " + e);
        }
}
button.addEventListener(MouseEvent.CLICK, callLink);


hipot 12.03.2009 22:16

встройте баннер при помощи
http://www.adobe.com/products/flashp...detection_kit/
(JavaScript функция AC_FL_RunContent)
поможет

silin 12.03.2009 23:19

как вариант открывать через JS
ExternalInterface должен быть для флешки разрешен (allowScriptAccess: "always")
Код AS3:

var jsFun:String = "function(url){window.open(url,'_blank');}";
try {
        ExternalInterface.call(jsFun,url);
}catch (e:Error){}


ZoNT 13.03.2009 12:26

Цитата:

Сообщение от hipot (Сообщение 805049)
встройте баннер при помощи
http://www.adobe.com/products/flashp...detection_kit/
(JavaScript функция AC_FL_RunContent)
поможет

Попробовал - разницы никакой (кто бы сомневался). Вставка через этот убогий скрипт (с определением браузера по юзерагенту) в итоге ничем не отличается от любой другой вставки: на странице в итоге будет опять либо embed, либо object с param`метрами.

silin, спасибо за совет, сам как-то об этом не подумал... Сейчас потестю и отпишусь.

Добавлено через 5 минут
Не, один хрен: в ИЕ окно блокируется и при вызове через ExternalInterface. ИЕ блокирует новые окна, открываемые скриптом (а не пользователем), а клик из флешки в данном случае не рассматривается как действия пользователя. Если бы эта функция (function(url){window.open(url,'_blank');}) была повешена на document.click и пользователь кликнул по станице, тогда бы новое окно открылось без вопросов (без блокирования)...

fljot 13.03.2009 12:35

wmode какой стоит?

ZoNT 13.03.2009 12:36

wmode=opaque (да и из поста понятно, что AS2 на wmode=window тоже бы блокировалось окно)...

hipot 13.03.2009 12:54

Цитата:

(JavaScript функция AC_FL_RunContent)
мне помогло именно при такой проблеме, просто так я бы не советовал.
Цитата:

убогий скрипт
почему убогий мне не ясно. у меня с ним никаких проблем не было.

iNils 13.03.2009 12:57

В IE есть различные уровни блокировки поп-апов. Много зависит от них.

ZoNT 13.03.2009 13:21

Цитата:

Сообщение от iNils (Сообщение 805169)
В IE есть различные уровни блокировки поп-апов. Много зависит от них.

Стоят настройки по-умолчанию. Именно этот случай наиболее распространён, он меня и интресует.

iNils 13.03.2009 13:25

Хе, у меня по умолчанию стоит High, поэтому у меня все блокируется. А у js'-ка на против, по умолчанию стоит Medium. Так что "по молчанию" бывает разное.

ZoNT 13.03.2009 13:29

Цитата:

Сообщение от iNils (Сообщение 805172)
Хе, у меня по умолчанию стоит High, поэтому у меня все блокируется. А у js'-ка на против, по умолчанию стоит Medium. Так что "по молчанию" бывает разное.

"По-умолчанию" - это "из коробки", ориентирование идёт на непродвинутых пользователей, так как таких большинство (среди тех, кто пользуется ИЕ)... А продвинутые пользуются другими браузерами, где проблем, как известно, намного меньше.

iNils 13.03.2009 13:39

Коробки разные бывают. Дома одни, а в офисах, админы накатывают уже готовые сборки системы с софтом и там могут быть совсем другие настройки с повышенными уровнями безопасности.

Кстати, а что вас вынудило делать баннер на AS3?

wvxvw 13.03.2009 13:59

Посмотри, как тут сделано:
http://code.google.com/p/e4xu/source.../ShadowLink.as
click()
и
http://code.google.com/p/e4xu/source...oxInterface.as
setup()
Т.е. в двух слoвах, динамически вписываем линк в документ, а потом имитируем клик по нему... заморочено - не то слово :) но если хочется открывать именно в новом окне - тогда я не знаю других решений...

silin 13.03.2009 14:21

есть еще вариант внедрить AVM1 флешку с getURL в on(release) раз такой клик считается кошерным

ZoNT 13.03.2009 14:26

Всё, всё пашет нормально с экстерналИнтерфейсом:

Код AS3:

function callLink(event:MouseEvent):void {
        try {
                ExternalInterface.call('window.open',url);
        }catch (e:Error){}
}
button.addEventListener(MouseEvent.CLICK, callLink);

AS3 в баннерах используют странные люди (я к ним не отношусь), но решать проблемы приходится мне...


Часовой пояс GMT +4, время: 08:43.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.