我正在进行动态脚本调用,以在窗口的onload事件之前加载一些外部JS。这是示例代码。

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上运行完美(Window onload事件不等待动态脚本资源下载)。但是,它在Firefox上不起作用。 Window onload事件正在等待动态脚本资源下载。

有没有解决此问题的方法。您可以使用http://nidhisekhar.com/samples/async_script_call_settimeout.html链接查看IE和Firefox上的行为。我感谢您的帮助。

谢谢,
拉贾

最佳答案

尝试以下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');

关于firefox - Javascript:Firefox中的Onload事件未触发,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5427427/

10-10 21:24
查看更多