javascript - 使用javascript如何克服ie版本的document.createElement ('script' .onload问题

标签 javascript

这里我有一个问题。下面我动态创建脚本元素。问题是 ga.onload=function() 不能在 ie 中工作。其他浏览器如 ff、chrome 都正常工作。但 IE 不能工作。代码是

var ga = document.createElement('script'); 
ga.type = 'text/javascript';
ga.async = true;
ga.src = "../../script/jquery.hint.js";
ga.onload = function(){
    some operation here;
};
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(ga, s);

最佳答案

您可以让它适用于所有浏览器。问题是 IE 报告状态不可靠,它并不总是报告完成,有时它只是报告加载。以下代码对我来说工作正常。

runFun = "";

var newScript = document.createElement('script');

if(document.all){
    newScript.onreadystatechange = function() {
        if (newScript.readyState == 'complete') {
            newScript.onreadystatechange = "";
            runFun = new Function("alert('here');");
        }
        else if (newScript.readyState == 'loaded') {
            newScript.onreadystatechange = "";
            runFun = new Function("alert('here');");
        }
        runFun();
    }
}
else {
    // most browsers
    newScript.onload = function() {
        var runFun = new Function("alert('here');");
        runFun();
    }
}

关于javascript - 使用javascript如何克服ie版本的document.createElement ('script' .onload问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4506875/

相关文章:

javascript - 移动多维数组树的深层成员 - 使用 lodash 或下划线

javascript - 删除 Google Calendar API 中的事件

javascript - 即使只有一个固定元素,chrome 应用程序滚动也不起作用

javascript - 为什么一个值在 x 中递增而不是在找到的对象中?

javascript - 更改内容可编辑的 div 中某些字符的字体大小

javascript - 显示加载 gif 直到 ajax 调用加载完毕(并且不与 setInterval 交互)

javascript - 范围 slider 开始和结束处的圆圈

javascript - Facebook Javascript API 不断重新连接

javascript - 在元素外部单击时如何切换类 Jquery

javascript - 单击下拉菜单时,侧边栏需要变高