是否有任何理由说明为什么要使用document.writeln包含JavaScript

时间:2010-03-16 06:04:02

标签: javascript

有什么理由说明为什么要包含这样的JavaScript:

<script type="text/javascript">document.writeln('<script src="http://example.com/javascript/MyJavaScript.js" type="text/javascript"><' + '/script>');</script>

(抱歉,长滚动线。这是在HTML文档的head中。)

我最近一直在看一些HTML,我已经注意到了几次(所有这些都在一个网站上)。我想不出你为什么会这样做的任何理由,但我很难说自己是一名网络开发者。这些代码行很可能是自动生成的,但是,某个地方的某个人一定认为这是一个好主意。

5 个答案:

答案 0 :(得分:5)

此技术已用于并行加载外部脚本,保留执行顺序。

它有一些缺点,例如,在IE和Opera中,即使脚本并行加载,其他外部资源(如图像,样式表,其他框架等)也会被阻止下载,直到加载脚本为止。

但是现在,我建议通过DOM脚本包含外部脚本,生成动态script元素,但你必须关心IE memory leaks

选中此test page以查看浏览器的行为。

答案 1 :(得分:1)

在某些情况下,document.writeln方法用于混淆脚本的来源,和/或打破在生成的html上进行简单字符串匹配的简单化广告拦截器:

document.writeln('<' + 'sc' + 'r' + 'ip' + 't' + etc...)

document.writeln('<script src="' + decode_obfuscated_url('encoded garbage here') + '">');

答案 2 :(得分:-1)

您可能需要根据某种客户端业务逻辑动态包含javascript文件。

答案 3 :(得分:-1)

网站要求在稍后延迟或加载页面后稍后加载js。

答案 4 :(得分:-1)

我不会说有任何特别的原因。这只是直接写入文档的一种方式。