推迟javascript - 什么是正确的html语法defer或defer ="defer"

Dai*_*Bok 4 html javascript w3c

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

我看到它有两种方式:

1:

<script defer  >...</script>
Run Code Online (Sandbox Code Playgroud)

2:

<script defer="defer">...</script>
Run Code Online (Sandbox Code Playgroud)

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

谢谢

Fel*_*ing 5

defer是一个布尔属性[HTML 4.01 spec]:

某些属性扮演布尔变量的角色(例如,元素的selected属性OPTION).它们出现在元素的开始标记中意味着属性的值为"true".他们的缺席意味着"虚假"的价值.

[...]

在HTML中,布尔属性可以以最小化的形式出现 - 属性的值单独出现在元素的开始标记中.因此,selected可以通过写:

<OPTION selected>
Run Code Online (Sandbox Code Playgroud)

代替:

<OPTION selected="selected">
Run Code Online (Sandbox Code Playgroud)

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

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


Que*_*tin 5

由于您引用了 HTML 4.01:

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


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

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