当前位置: 首页 > 面试题库 >

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

毕胡非
2023-03-14
问题内容

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

我想念什么吗?
谢谢


问题答案:

您应该致电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 );


 类似资料:
  • 本文向大家介绍IE8中动态创建script标签onload无效的解决方法,包括了IE8中动态创建script标签onload无效的解决方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了IE8中动态创建script标签onload无效的解决方法。分享给大家供大家参考。具体分析如下: 今天做项目,发现一个奇怪的问题,动态创建的script标签在IE8下无法触发onload事件。 代码如下:

  • 本文向大家介绍全面了解js中的script标签,包括了全面了解js中的script标签的使用技巧和注意事项,需要的朋友参考一下 在页面中用script标签引入javascript文件(<script type="text/javascript" src="js文件地址"></script>),浏览器在渲染页面的时候,当读取到script元素时,浏览器不会以HTML或XHTML的方式处理其内容,浏览

  • 本文向大家介绍浅谈js script标签中的预解析,包括了浅谈js script标签中的预解析的使用技巧和注意事项,需要的朋友参考一下 首先介绍预解析,虽然预解析字面意思很好理解,但是却是出坑出的最多的地方,也是bug经常会有的地方,利用好预解析的特性可以解决很多问题,并且提高代码的质量及数量,浏览器在解析代码前会把变量的声明和函数(整个函数体)提前到当前作用域的最顶端。 细节问题:在多对的scr

  • WebGL着色器代码在JavaScript中以字符串的形式存在,编写代码比较麻烦,为了编写方便,可以把着色器代码写在script或者其他HTML元素标签中,然后通过元素.innerText属性获得元素中的字符串,也就是着色器的代码。 在原来WebGL绘制一个点的代码基础上进行更改 <!-- 顶点着色器源码 --> <script id="vertexShader" type="x-shader/x

  •  有时候我们会碰到<select></select>标签的下拉框。直接点击下拉框中的选项不一定可行。Selenium专门提供了Select类来处理下拉框。 <select id="status" class="form-control valid" onchange="" name="status"> <option value=""></option> <option value

  • 问题内容: 我正在尝试按顺序加载一组脚本,但是onload事件对我没有触发。 我猜想当使用jQuery将元素添加到DOM时,不会触发诸如el.onload之类的本地事件。如果我使用本机,则可以正常启动。 问题答案: 您应该在事件f.ex 之后* 设置属性: * 您还应该 在 附加事件 之前 将脚本附加到DOM : 请记住,您需要检查IE支持。如果您使用的是jQuery,则还可以尝试以下方法:htt