Так вот в чем проблема.
У меня есть флэш-баннер, состоящий из двух swf, которые общаются друг с другом через LocalConnection, а также вызывают внешние функции JS. (Я не понял, важно ли это или просто чепуха.)
У меня также есть внешний файл JS, который сообщает баннеру, что делать через flashVars. И имеет функцию, которую баннер вызывает на событиях.
Как вы можете себе представить, это работает везде, кроме IE.
В IE я испытываю эту проблему: я пытаюсь загрузить тестовую страницу, на которой много картинок и насыщенный фон (поэтому загрузка занимает некоторое время). И я размещаю баннер, который добавляется с помощью javascript перед всем этим контентом. Примерно так:
http://pastebin.com/nnTuPPhN
И иногда при перезагрузке некоторые картинки просто не появляются. Хотя весь текст появляется.
Я попытался копаться в сценарии, но поскольку это не мой сценарий, оказалось, что это немного сложно, в конце концов я пришел к выводу, что, хотя мне не нравятся некоторые его части, нет явных проблем. с этим.
Отладчики FireBug и Chrome, Safari, Opera не показывают никаких ошибок.
Теперь, в крайнем случае, я добавил это в свой файл JS
window.onload = function()
{
alert('The page has loaded completely');
};
В результате, когда я вижу все картинки, я вижу это сообщение, а когда нет, я не вижу. Не помогает ждать загрузки картинок.
Я также нашел эту тему:
window.onload () не запускается с IE 8 в первом кадре
которая говорит о подобной проблеме, поэтому было бы неплохо, если бы кто-нибудь указал, какое дополнение может вызвать это? Цитата: Один из аддонов IE создал эту проблему, после отключения его нормально работает. Спасибо за ваше время и ответы:)
Пока это не плагин вспышки =)))
Я проверяю наличие плагина на странице следующим образом:
var ad_checkPlugin = function(){
// From SWFObject v2.2 <http://code.google.com/p/swfobject/>
if (typeof navigator.plugins != "undefined" && typeof navigator.plugins["Shockwave Flash"] == "object")
{
d = navigator.plugins["Shockwave Flash"].description;
return (d && !(typeof navigator.mimeTypes != "undefined" && navigator.mimeTypes["application/x-shockwave-flash"] && !navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin))
}
else if (typeof window.ActiveXObject != "undefined")
{
try
{
var d = new window.ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version");
// new window.ActiveXObject(...) will return null if ActiveX is disabled
return d?true:false;
}
catch(e)
{
return false;
}
}
}
И был другой способ, который вызывал те же проблемы в Ie, так что я думаю, что это не проблема с проверкой плагина.
Я был бы рад, если бы вы сказали мне общие вещи, которые могут вызвать такие проблемы, я также могу рекламировать сценарий, если вы, ребята, попросите его.
И я буду еще счастливее, если ты скажешь мне конкретные вещи =)), если ты собираешься сказать, что проблемы лежат в сценарии, я не смогу согласиться или не согласиться, я проверял и не вижу проблем, браузеры тоже не видят проблем. Но он должен быть где-то там, так как он не работает.
ОБНОВЛЕНИЕ: у меня также есть предупреждения в любом месте моего JS сейчас, теперь я вижу следующее: в FF, например, иногда я вижу предупреждение
alert('The page has loaded completely');
но у меня нет времени, чтобы щелкнуть этот (щелкнуть ОК), когда появится другое предупреждение. Это нормально для оповещений? Я должен добавить, что многие из предупреждений находятся в функции, вызываемой баннером.
ОБНОВЛЕНИЕ №2:
Я изолировал проблему еще больше. Я вообще прекратил любые вызовы от flash к функциям JS (сначала я попытался заменить их на alert («привет мир»); это не помогло при загрузке).
Теперь, когда flash не вызывает JS, страница загружается просто отлично. Конечно, мне нужна вспышка для вызова внешних функций.
В любом случае НОВЫЙ ВОПРОС: может ли javascript, вызываемый из flash, заставить IE думать, что все загружено и может остановиться, то есть может ли это быть что-то вроде:
clean your room (and two seconds later)
now brush your teeth
result: the room is half clean but the teeth are
Я мог бы добавить, что что бы ни загружалось на странице, некоторые вещи загружаются всегда: текст, пробелы для будущих картинок, но это может быть просто совпадением, кроме того, что вообще нет системы для того, что имеет, а что нет загружен.
---------------------------> ОТВЕТ НАЙДЕН
Спасибо))) за то, что проголосовали за мой вопрос, а вот и ответили ребята! Функция, используемая во вспышке, а именно
getURL("javascript: ...","");
- это то, что фактически останавливает загрузку страницы! Хм, а не это лучше использовать ExternalInterface (); Я укажу, что мы говорим об AS 2.0 в AS3.0, нет никаких сомнений в том, что ExternalInterface должен использоваться, так как теперь getURL - navateTo или smthg.
Спасибо парню, который написал эту AS, чтобы понять, в чем проблема =)