swfObject, вызывающий ошибку "Object not support" в функции __flash__addCallback
Итак, я застрял на этой проблеме в течение некоторого времени, и это вызвало много разочарований. На многих страницах форума, которые я просмотрел, я нашел много людей, которые разделяют ту же проблему, но никого, кто дал четкий ответ о том, почему возникает эта ошибка и как ее исправить.
Я использую swfObject 2.2 для встраивания фонового видео на страницу, над которой я работаю, и IE7/IE8 выдает ошибку: "Объект не поддерживает это свойство или метод" из-за строки 48 символа 3. После открытия инструментов разработчика чтобы увидеть, какой код вызывает эту ошибку, я нашел это:
function __flash__addCallback (instance, name) {
instance[name] = function () {
return eval(instance.CallFunction("<invoke name=\""+name+"\" returntype=\"javascript\">" + __flash__argumentsToXML(arguments,0) + "</invoke>"));
}
}
Я попытался найти, где я ошибался в своем коде и закомментировал все, кроме:
swfobject.embedSWF('http://localhost/flash/player.swf', 'video_player', '100%', '100%', '9.0.0');
Это элемент, который ищет swfobject:
<div id="video_player"></div>
Чтобы пойти дальше, я использовал совершенно пустой файл.swf, чтобы убедиться, что ошибка не генерируется самим файлом.swf.
Мне бы очень хотелось узнать, имел ли кто-нибудь опыт с этой ошибкой, используя swfobject, и могу ли я что-то сделать для ее решения.
2 ответа
У меня была такая же проблема, и я нашел эту запись в блоге:
Adobe Flash ExternalInterface проблемы с Internet Explorer
Подводя итог, можно сказать, что функции play() и stop() являются зарезервированными словами. Несмотря на то, что вы упомянули, что вы не используете вызовы ExternalInterface, но вы уже пытались переименовать эти методы?
Я хотел бы добавить в список "плохих" слов согласно IE8.
Нам пришлось переименовать методы с именем "zoom" и "pan", которые вызывали одну и ту же проблему. Другие люди сообщали, что "стоп" - это еще одно плохое слово.
К счастью, исправить это проще, чем найти точную причину: просто переименуйте ваши методы.