在运行时包含JavaScript在IE8中不起作用

时间:2010-11-25 16:19:16

标签: javascript

下面的代码在IE6& IE7和几乎所有版本的FF。它只是在IE8中不起作用。一旦我将脚本标记添加到HTML中,它就不起作用了 - > HEAD元素我没有看到脚本在浏览器中加载(脚本中的警报没有显示)。我看到标签已插入HTML-HEAD中。

var head = document getElementsByTagName('head')[0];
// Check if the script is already loaded.
if (head ){
    var script = document.createElement('script');
    script.type = 'text/javascript';
    script.language = 'JavaScript';
    script.src = '/Tolven/scripts/' + jsFileName;
    head.appendChild(script);       
}

有人有这个问题吗?或者解决这个问题的任何线索?

4 个答案:

答案 0 :(得分:1)

如果此脚本在<head>标记中,则在解析并执行此脚本时,head不存在。因此,cource if (head)false

您正在使用JS框架 - 所以请随意使用它的工具。并且在使用之前也不要忘记包含您的框架。

<!-- if your are using mootools -->
<script type="text/javascript" src="mootools.js"></script>
<script type="text/javascript">
  window.addEvent('domready', function() {
    // Your code...
  });
</script>

<!-- if your are using prototype -->
<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript">
  document.observe("dom:loaded", function() {
    // Your code...
  });
</script>

答案 1 :(得分:1)

考虑使用像RequireJSLABjs这样的库来完成在运行时包含脚本的工作。

答案 2 :(得分:0)

var head = document getElementsByTagName('head')[0];

应该是

var head = document.getElementsByTagName('head')[0];

脚本似乎在修改后工作。

答案 3 :(得分:-1)

这实际上是有效的。在运行时插入的一个脚本中存在错误(仅在IE8中发生)。最终它没有在下一个加载的页面中执行警报。谢谢你的答案。