在 javascript 中使用 defer 属性的正确语法是什么?
我已经看到它以两种方式完成:
1:
<script defer >...</script>
2:
<script defer="defer">...</script>
从经验 [和我找不到的参考资料] 我更倾向于使用第二个选项,但我只是仔细检查了官方 w3c 网站,似乎选项 1 是正确的。
谢谢
在 javascript 中使用 defer 属性的正确语法是什么?
我已经看到它以两种方式完成:
1:
<script defer >...</script>
2:
<script defer="defer">...</script>
从经验 [和我找不到的参考资料] 我更倾向于使用第二个选项,但我只是仔细检查了官方 w3c 网站,似乎选项 1 是正确的。
谢谢
defer
是一个布尔属性[HTML 4.01 规范]:
一些属性扮演布尔变量的角色(例如,元素的
selected
属性)。OPTION
它们出现在元素的开始标记中意味着该属性的值为“真”。他们的缺席意味着“假”的价值。[...]
在 HTML 中,布尔属性可能以最小化的形式出现——属性的值单独出现在元素的开始标记中。因此,
selected
可以通过以下方式设置:<OPTION selected>
代替:
<OPTION selected="selected">
作者应该知道,许多用户代理只识别布尔属性的最小化形式而不是完整形式。
但是,如果使用 XHTML,则必须使用第二种形式,因为 XHTML 遵循 XML 语法,其中属性始终必须具有值。
由于您引用 HTML 4.01:
如果您使用的是 XHTML,那么您将不得不使用更长的版本。
HTML 5还允许使用这两种版本,并删除了使用其中一种的建议(因为为了与用作 text/html 的 XHTML 兼容,所有现代浏览器都可以处理这两种语法)。
2.4.2 布尔属性
许多属性是布尔属性。元素上存在布尔属性表示真值,不存在该属性表示假值。
如果该属性存在,则其值必须是空字符串或与属性的规范名称匹配的不区分大小写的 ASCII 值,没有前导或尾随空格。
所以defer
是对defer="defer"
的defer="DeFeR"
defer=""
async 和 defer 属性是布尔属性,指示应该如何执行脚本。如果 src 属性不存在,则不得指定 defer 和 async 属性。
https://www.w3.org/TR/html5/scripting-1.html#attr-script-defer