在IE8中在运行时插入JavaScript

时间:2012-08-07 17:57:24

标签: javascript internet-explorer-8 runtime appendchild

我正在使用脚本从库中加载脚本(一个大文件),它的工作原理如下:

  1. 通过xmlhttprequest加载脚本
  2. 使用里面的脚本创建一个新的脚本标记元素(新文本节点,innerText或 innerHTML)
  3. 将新元素添加到头部
  4. 没有什么比这更复杂了。但IE8只是没有做到这一点!它不允许通过任何方法在脚本元素标记中插入脚本!所以我尝试了另一种方法:

    <script type="text/javascript" language="javascript">
    function teste(){
        var elemScript = document.createElement('script');
        elemScript.type = 'text/javascript';
        elemScript.language = 'javascript';
        elemScript.src = 'http://somewhere/somecode.js';
        var headTag = document.getElementsByTagName('head')[0];
        headTag.appendChild(elemScript);
    }
    window.onload = teste;
    </script>
    
    IE8只是没有说什么。我不知道它是否正在加载,但我确定没有执行代码(测试警报)。 我知道jQuery和其他库可以做到这一点,并且可以在所有浏览器中运行(IE8 +对我来说没问题)。他们是如何做到这一点的?有一种简单的方法可以用纯JavaScript解决这个问题吗?

1 个答案:

答案 0 :(得分:-1)

ajax不会触发onload事件:

window.onload = teste;

所以,只需更改它即可调用方法:

teste();