2011-05-12 59 views
1

我一直在寻找一些跟踪问题,并有一个关于启动脚本的问题。谁能告诉我,如果之间存在差异:使用(或不使用)document.writeln启动Javascript?

<script type="text/javascript" src="http://www.example.com/universalPixel.html"></script> 

<script language="JavaScript"> document.writeln('<scri' + 'pt type="text/javascript" src="http://www.example.com/universalPixel.html"></scri' + 'pt>');</script> 

我已经看到了这两个变化,可惜一直没能辨别是否有显著差异取决于列入document.writeln方法。或者我可能还没有意识到另一个区别。

谢谢你的帮助。

亚历

+6

第二个是纯粹的邪恶! ;)但严重的是,不要使用'document.write'。这是非常90年代和可怕的无法维护。 – 2011-05-12 17:37:30

回答

3

document.writeln可能是用来动态包含的脚本,使用陌生的字符串连接方法,因为浏览器在处理</script>出现的任何地方作为脚本标签的末尾,甚至内部的JavaScript字符串的。所以下面将不会因为这个原因正常工作:

<script type="text/javascript"> 
    // code 

    document.writeln('<script type="text/javascript" src="..."></script>"); 
    // ^^ the </script> above ends the previous <script> tag prematurely. 

    // more code 
</script> 

但有更好的方法:

  1. 就包括他们通常,使用<script src="..">
  2. 动态生成包括使用服务器端代码(即,PHP)而不是JavaScript
  3. 使用提供动态库加载的JS库。
1

由于document.writeLn在XHTML中不受欢迎,因此应该尝试使用选项1.如果使用了适当的doctype,许多严格的浏览器甚至会忽略第二项。