javascript通知当脚本在IE中动态加载时

javascript notify when script is loaded dynamically in IE

本文关键字:动态 加载 IE 通知 脚本 javascript      更新时间:2023-09-26

我有一个小问题。我希望在脚本完成加载时得到通知。下面是我的代码:

var headID = document.getElementsByTagName("head")[0];         
        var newScript = document.createElement('script');
        newScript.type = 'text/javascript';
        newScript.src = 'http://code.jquery.com/jquery-1.6.2.min.js';
        newScript.onreadystatechange= function () {
            if (script.readyState == "loaded" || script.readyState == "complete"){
                script.onreadystatechange = null;
                alert("Script is ready!");
            }
        };
        newScript.onload= function(){
            alert("Script is ready 2!");
        };

在firefox, chrome, opera中一切正常,但在Internet Explorer(IE9)中不行。我在这个网站上找到了那个脚本。onreadystatechange被IE使用,但似乎在IE9上不起作用(我没有尝试过旧版本)。脚本在IE中加载,但我没有收到通知,这对我很重要。

谢谢。

PS:我知道在stackoverflow上有类似的问题,我也读过,但没有一个能解决我的问题,或者以这种特殊的方式对待它,这就是为什么我创建了这个

这不是特别优雅的解决方案,但您可以执行无限循环并检查加载脚本中是否设置了变量。如果设置了,脚本就会像这样加载:

    While(true){
         if( typeof foo != "unidentified" ){alert('loaded'); break;}
    }