代码如下:
<html>
<head>
<title>Test Json</title>
</head>
<body>
<script type="text/javascript">
sc=document.createElement('script');
sc.type='text/javascript';
sc.src='1.js';
document.getElementsByTagName("head")[0].appendChild(sc);
</script>
<script>
fn();
</script>
</body>
</html>1.js的代码如下function fn(){
alert('Hello 1html');
}问题是在IE和Firefox下都可以运行。但是在Chrome下无法运行请教高手是什么原因。小弟刚刚入门还望不吝赐教!

解决方案 »

  1.   

    如果要在Chrome中能够引入外部js应该怎么写呢?标题Chrome写错了:(
      

  2.   

    需要考虑执行顺序。参见如下测试代码,此代码在各浏览器中执行结果是一致的:
    <html>
    <head>
    <title>Test Json </title>
    </head>
    <body>
    <script type="text/javascript">
    var o = {};
    o.fnA = function(){};var sc = document.createElement('script');
    sc.type = 'text/javascript';
    sc.src = 'x.js';
    document.getElementsByTagName("head")[0].appendChild(sc);for(var d in o){alert(d);}//无法立即获取到更新(貌似FF中弹两次fnA,有人知道原因么?)document.onclick = function(){
    for(var d in o){alert(d);}//在稍候的操作里可以看到有更新
    };
    </script>
    </body>
    </html>
    x.jso.fnB = function(){};
      

  3.   

    我看到过chrome工程师的解释,大意是这首先,DOM没有ready之前,是没有标准的,而后为了让DOM最快速度显示,对于append的外部js是放在DOM的ready之后来处理的。建议,DOM ready之后再操作DOM,或者可以试试document.write,也许chrome的内部流程会不一样。