6

在 javascript 中使用 defer 属性的正确语法是什么?

我已经看到它以两种方式完成:

1:

<script defer  >...</script>

2:

<script defer="defer">...</script>

从经验 [和我找不到的参考资料] 我更倾向于使用第二个选项,但我只是仔细检查了官方 w3c 网站,似乎选项 1 是正确的。

谢谢

4

4 回答 4

7

defer是一个布尔属性[HTML 4.01 规范]

一些属性扮演布尔变量的角色(例如,元素的selected属性)。OPTION它们出现在元素的开始标记中意味着该属性的值为“真”。他们的缺席意味着“假”的价值。

[...]

在 HTML 中,布尔属性可能以最小化的形式出现——属性的值单独出现在元素的开始标记中。因此,selected可以通过以下方式设置:

<OPTION selected>

代替:

<OPTION selected="selected">

作者应该知道,许多用户代理只识别布尔属性的最小化形式而不是完整形式。

但是,如果使用 XHTML,则必须使用第二种形式,因为 XHTML 遵循 XML 语法,其中属性始终必须具有值。

于 2013-06-18T12:43:37.090 回答
4

由于您引用 HTML 4.01:

这是一个布尔属性。两种形式都是正确的,但规范建议使用前者


如果您使用的是 XHTML,那么您将不得不使用更长的版本

HTML 5还允许使用这两种版本,并删除了使用其中一种的建议(因为为了与用作 text/html 的 XHTML 兼容,所有现代浏览器都可以处理这两种语法)。

于 2013-06-18T12:43:48.427 回答
2

HTML 5.1 每晚

2.4.2 布尔属性

许多属性是布尔属性。元素上存在布尔属性表示真值,不存在该属性表示假值。

如果该属性存在,则其值必须是空字符串或与属性的规范名称匹配的不区分大小写的 ASCII 值,没有前导或尾随空格

所以defer是对defer="defer"defer="DeFeR"defer=""

于 2013-06-18T12:44:55.377 回答
0

async 和 defer 属性是布尔属性,指示应该如何执行脚本。如果 src 属性不存在,则不得指定 defer 和 async 属性。

https://www.w3.org/TR/html5/scripting-1.html#attr-script-defer

于 2017-04-12T15:40:41.003 回答