代码之家  ›  专栏  ›  技术社区  ›  Srini Kandula

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

  •  1
  • Srini Kandula  · 技术社区  · 15 年前

    下面这段代码在IE6&IE7和几乎所有的FF版本中都有效。只是在IE8中不起作用。当我将脚本标记添加到HTML-gt;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 回复  |  直到 15 年前
        1
  •  1
  •   petraszd    15 年前

    如果这个脚本在 <head> 当该脚本被解析和执行时,标签不存在。所以,关于库斯 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>
    
        2
  •  1
  •   Ates Goral    15 年前

    考虑使用类似于 RequireJS LABjs 在运行时包含脚本的工作做得非常好。

        3
  •  0
  •   Andreas    15 年前
    var head = document getElementsByTagName('head')[0];
    

    应该是

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

    修改后的脚本似乎可以工作。

        4
  •  -1
  •   Srini Kandula    12 年前

    这真的很管用。在运行时插入的一个脚本中出现错误(仅在IE8中发生)。最终它不会在下一个加载的页面中执行警报。不过,谢谢你的回答。