Подавить событие щелчка SWF в IE, вместо этого следуйте тегу привязки - PullRequest
1 голос
/ 13 февраля 2009

Сценарий: у вас есть SWF-файл со встроенным событием щелчка, которое приводит вас на определенную веб-страницу. Вы хотите использовать этот SWF-файл (источник недоступен), но при этом событие click приведет вас на другую веб-страницу. Оборачивание встроенного SWF-файла в тег привязки и установка swf на wmode = transparent работает только в FF, а не в IE, и, поскольку рассматриваемый веб-сайт обслуживает толпу не технически подкованных, совместимость IE довольно важна. *

Какие настройки необходимо изменить, чтобы тег привязки был соблюден в браузере?

Ответы [ 3 ]

1 голос
/ 13 февраля 2009

Создайте свое собственное флеш-приложение, в которое встроен основной SWF-файл и наложите поверх него прозрачный спрайт для захвата щелчков мыши. Вы можете передать целевой URL в параметре.

0 голосов
/ 13 февраля 2009

Попробуйте использовать очень высокий z-индекс для кликабельной части. По умолчанию Flash в IE размещается очень высоко в порядке размещения, поэтому все щелчки переходят к нему по умолчанию. Судя по http://www.webmasterworld.com/css/3639440.htm, 99, это следует сделать, но помните, что фактический z-индекс, используемый Flash, мог измениться с того поста (если есть максимальное значение для z-индекса, они могли бы использовать это сейчас, это невозможно - это будет зависеть от реализации, я полагаю).

Кроме того, проверьте с другими браузерами И на других операционных системах. Поведение может отличаться.

IE8 имеет новую защиту от Clickjacking, но я не думаю, что это повлияет на этот сценарий. Вы можете посмотреть http://blogs.msdn.com/ie/archive/2009/01/27/ie8-security-part-vii-clickjacking-defenses.aspx, прежде чем решите пойти по этому маршруту, на всякий случай.

0 голосов
/ 13 февраля 2009

Если бы вы задали этот вопрос несколько месяцев назад, я бы посоветовал вам поставить прозрачный gif перед swf, но в наши дни это можно считать кликбэком и noscript, и некоторые антивирусные инструменты могут потерять сознание, когда увидят его. (с другой стороны, может и нет, потому что это прозрачное изображение будет непосредственно в теге <a>, и если swf «случайно» идет под ним, ну ... ничего страшного)

...