Загрузка страницы в IE, страница содержит флеш-баннер - PullRequest
2 голосов
/ 01 августа 2011

Так вот в чем проблема.

У меня есть флэш-баннер, состоящий из двух 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, чтобы понять, в чем проблема =)

1 Ответ

0 голосов
/ 04 сентября 2014

Просто скопировав ответ сверху, чтобы решить вопрос

Функция, используемая во вспышке, а именно

getURL ("javascript: ...", ""); это то, что на самом деле останавливает страницу от загрузка! Хм, а не это лучше использовать ExternalInterface (); Я укажу, что мы говорим об AS 2.0, в AS3.0 нет вопрос, что ExternalInterface должен использоваться, так как теперь getURL перейти к или что-л.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...