【发布时间】:2016-07-05 15:08:07
【问题描述】:
要在 HTML 页面中包含一个外部 JavaScript 文件,你可以这样:
<script type="text/javascript" src="images/jquery-2.2.2.js"></script>
这个标签的正文是空的,但我必须输入字符串script 两次。为什么 HTML 中没有 XML 样式的隐式结束标记,如下所示:
<script type="text/javascript" src="images/jquery-2.2.2.js" />
如果它是有效的(至少在 HTML5 中),那么如何确保每个支持 HTML5(或 XHTML5)的浏览器都能接受这种用法?
编辑
我将把这个问题提交给 HTML WG。弃用 <script> 上的 src 属性,因为它是整个混乱的根源,使用以下两个选项之一:
-
<link>标记而不是空的<script>标记:<link type="text/javascript" href="images/jquery-2.2.2.js" />或者可以选择使用
rel属性:<link rel="script" type="text/javascript" href="images/jquery-2.2.2.js" /> -
JavaScript 本身中的 PHP 样式
include():(因此始终强制 some 内容进入标签,并允许多个脚本包含在一个script标签中)<script type="text/javascript">include("images/jquery-2.2.2.js");</script>
【问题讨论】:
-
有趣的是,它实际上曾经在 2.0 左右的 firefox 中工作,但它被关闭以使 XSS 更难并允许更多清理 RegExps 正常工作。我记得更改日志条目...
-
粗略的 tl;dr AFAIK:HTML5 的最初目标是标准化跨浏览器最可靠的工作。这从未在某些浏览器中实现,因此出于可比性原因,它被排除在 HTML5 之外。这导致以 HTML 模式实现它的浏览器决定放弃它。
-
@JeremyBanks:更简单:没有可以有内容的标签可以通过
/>自动关闭。
标签: javascript html