【问题标题】:Loading script outside of html document在 html 文档之外加载脚本
【发布时间】:2011-08-01 08:27:28
【问题描述】:

我遇到了这个 html sn-p,令我惊讶的是 jQuery 对象确实被创建了!

<!doctype html>
<body>
<h1>Hello World</h1>
</body>
</html>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.js"></script>

您可能会注意到&lt;script&gt; 标签出现在之后 关闭&lt;/html&gt; 标签。我想知道这如何以及为什么会起作用?

【问题讨论】:

  • 浏览器非常容错。他们必须是,你很幸运能在 Internet 上找到一个严格符合标准的页面。
  • 在 ie6 或 7 上尝试您的代码并查看结果:p

标签: javascript html


【解决方案1】:

之所以有效,是因为浏览器非常宽容,这样做没有任何好处。

之所以存在,可能是因为有人误解了“将脚本放在页面尽可能远的位置”的含义……

【讨论】:

  • JS 放在 HTML 之外对 DomContentLoaded 事件有什么影响。在执行此 javascript 之前是否触发了 DomContentLoaded 事件?
【解决方案2】:

如果您验证文件,它会说它无效。但是,浏览器通常会尝试按照您可能想要的方式做事。

浏览器没有那么严格。您可以做很多错误的事情,但它们仍然可以工作。

【讨论】:

    【解决方案3】:

    我检查了这个代码的 firefox ,脚本被视为这种特殊情况下的内部正文标记。

    浏览器确实具有容错能力。

    【讨论】:

      猜你喜欢
      • 2015-03-28
      • 1970-01-01
      • 1970-01-01
      • 2023-03-30
      • 1970-01-01
      • 1970-01-01
      • 2016-04-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多