IE7附加但在注入</script>时不加载<script>

时间:2011-06-03 18:14:00

标签: javascript html internet-explorer-7

我有一个JS,它在关闭</body>标记之前存在,该标记包含一个方法,如果执行某个操作,该方法会注入另一个<script>元素来加载JS文件。

附加的代码片段如下所示:

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

script.setAttribute('type', 'text/javascript');
script.setAttribute('src', 'http://path/to/script.js');

document.body.appendChild(script);

该代码适用于除IE7之外的所有浏览器。在IE7上,它成功地将脚本附加到DOM中,但不加载它。

我想指出的另一件事是,我还尝试将该脚本附加到<head>,但仍然无效。

3 个答案:

答案 0 :(得分:2)

而不是将script元素添加到body元素(当您尝试在关闭</body>标记之前执行此操作时未关闭) ,尝试将您的脚本添加到head。此外,请勿使用setAttribute,而是直接设置新DOMElement的属性:

var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'http://path/to/script.js';
document.getElementsByTagName('head')[0].appendChild(script);

答案 1 :(得分:0)

在DOM加载完成后添加脚本?我知道IE6在加载之前修改DOM会有问题(请致命:无法加载此页面)。

使用window.onload或者只是将脚本放在标题中包含的javascript文件中。

此外,如果JavaScript资源实际上不是JavaScript文件,而是某些生成JavaScript文件的脚本,请确保您发送JavaScript内容标题。

答案 2 :(得分:0)

您是否尝试过添加脚本标记,然后设置源代码?我知道IE7在附加样式标签时需要这个顺序,所以它可能值得一试!