小编典典

Internet Explorer中'script'标签的'onload'处理程序

javascript

我一直在使用此函数将onload处理程序附加到脚本标签,这似乎是Internet上推荐的方法。
但是,如果页面已加载(在8中测试),则在Internet Explorer中不起作用。您可以看到它可以在普通浏览器中运行(加载脚本时会发出警报)。

我想念什么吗?
谢谢


阅读 364

收藏
2020-05-01

共1个答案

小编典典

您应该致电jQuery.getScript,它确实在寻找您想要的东西。

编辑 :这是来自jQuery的相关源代码:

var head = document.getElementsByTagName("head")[0] || document.documentElement;
var script = document.createElement("script");
if ( s.scriptCharset ) {
    script.charset = s.scriptCharset;
}
script.src = s.url;

// Handle Script loading
    var done = false;

// Attach handlers for all browsers
script.onload = script.onreadystatechange = function() {
    if ( !done && (!this.readyState ||
            this.readyState === "loaded" || this.readyState === "complete") ) {
        done = true;
        jQuery.handleSuccess( s, xhr, status, data );
        jQuery.handleComplete( s, xhr, status, data );

        // Handle memory leak in IE
        script.onload = script.onreadystatechange = null;
        if ( head && script.parentNode ) {
            head.removeChild( script );
        }
    }
};

// Use insertBefore instead of appendChild  to circumvent an IE6 bug.
// This arises when a base node is used (#2709 and #4378).
head.insertBefore( script, head.firstChild );
2020-05-01