Javascript: событие загрузки в Firefox не запускается - PullRequest
3 голосов
/ 25 марта 2011

Я делаю динамический вызов скрипта для загрузки некоторого экстентального JS перед событием onload окна. Вот пример кода.

var temp = document.createElement('script');
temp.type = 'text/javascript';
temp.async = temp.defer= true;
temp.src = "http://stevesouders.com/efws/iframe-empty.php?t==";
window.setTimeout(function(){document.getElementsByTagName('head')[0].appendChild(temp)},0);

Этот код отлично работает в IE (событие загрузки Windows не ожидает динамической загрузки ресурса скрипта). Однако это не работает на Firefox. Событие загрузки окна ожидает загрузки ресурса динамического скрипта.

Есть ли обходные пути для этой проблемы. Вы можете использовать ссылку http://nidhisekhar.com/samples/async_script_call_settimeout.html, чтобы увидеть поведение IE и Firefox. Я ценю вашу помощь.

Спасибо, Радж

1 Ответ

0 голосов
/ 25 марта 2011

попробуйте эту функцию JavaScript:

// Adds script tag to head of the page
function addScriptToHead(source, code, type) {
    var script = document.createElement('script');
    if (type === 'js') {
        script.setAttribute('type', 'text/javascript');
    }
    if (source !== '') {
        script.setAttribute('src', source);
    }
    if (code !== '') {
        if (document.all && !window.opera)  {
            script.text = code;
        } else {
            script.innerHTML = code;
        }
    }
    document.getElementsByTagName('head')[0].appendChild(script);
}

пример вызова:

addScriptToHead (path, '', 'js');

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