language="javascript"与type="text/javascript"有何区别?

20

关于将JavaScript添加到HTML中,我看到有人使用

<script language=javascript>

<script type="text/javascript">

似乎嵌入或外部脚本并不影响这个决定。

哪种更好,为什么?


属性本身是可选的,现在并不必要了。您只需使用<script>即可。 - PlantTheIdea
这个回答解决了你的问题吗?HTML脚本标签:type或language(或两者都不写)? - RiggsFolly
2个回答

30

<script language="javascript"> 在非常早期的浏览器中使用,已经被弃用。

<script type="text/javascript"> 是HTML 4标准。

在HTML 5中,type 参数是可选的(text/javascript是默认值),因此您可以只输入 <script>

作为一个巧妙的技巧,如果您放置了一个无效的 type,脚本将不会运行,但您仍然可以在JavaScript中读取数据。一些模板库会这样做。


雅虎使用混合的 <script language="javascript"> 和 <script type="text/javascript"> :) - Foo
2
@Foo:你仍然可以使用已弃用的功能,并混合标准。这不是一个好的实践,也不是有效的HTML,但大多数浏览器仍然会运行它。 - gen_Eric
1
@RocketHazmat 如果没有可靠的来源,我不会相信每个浏览器都会避免尝试运行一个具有奇怪类型属性设置的脚本块。即使它在所有浏览器上都能正常工作,我仍然认为“可怕”比“整洁”更好用一些;-) - aaaaaaaaaaaa
@电子商务:好的,我只是看到别人这么做了,就以为没问题。我可以查一下规范说什么 ^_^ - gen_Eric
1
今天,在网页中嵌入 schema.org 元数据的推荐方法是通过在一个带有 type="application/ld+json" 的脚本标记中嵌入 JSON 片段。因此,我想可以说我们现在可以信任浏览器不会运行它,因为它以这种方式嵌入了数百万个站点。 - Stijn de Witt

8

在HTML5中,你甚至不需要 type了!只需 <script> :-) - gen_Eric
@AgustinMeriles 这在 HTML 中是有效的。但在 XHTML 中不行。 - Christoph
1
@Christoph - 除非这个人在使用XML,否则我认为他们是安全的。 - PlantTheIdea
如果他们正在使用浏览器,那么就是安全的。只需将XHTML doctype放在你可怕的无效HTML上,它仍然会更或多或少地工作。浏览器可能会切换到一些非标准模式,但我认为即使这种情况已经被逐渐淘汰了。浏览器始终只真正使用一个解析器/渲染引擎,这只是支持一些“标准模式/怪异模式”切换而已。XHTML从未真正通过W3C验证器。 - Stijn de Witt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接