在 IE8 中运行时插入 JavaScript

Inserting JavaScript at runtime in IE8

本文关键字:插入 JavaScript 运行时 IE8      更新时间:2023-09-26

我正在使用脚本从库(大文件)加载脚本,它的工作原理是这样的:

  1. 通过 xmlhttprequest 加载脚本
  2. 创建一个新的脚本标记元素,其中包含脚本(新文本节点、内部文本或内部网页)
  3. 在头部追加新元素

没什么很复杂的。但是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解决这个问题?

ajax 不会触发 onload 事件:

window.onload = teste;

因此,只需将其更改为调用该方法:

teste();