html type="text/javascript",html-省略type =“ text / javascript” language =“ javascript”

html-省略type =“ text / javascript” language =“ javascript”

这个问题已经在这里有了答案:

HTML脚本标签:类型或语言(或两者都省略)? 3个答案

我创建的大多数脚本标签中,我总是在标签中包含type="text/javascript" language="javascript"。 但是我的老板没有。 有时他将两者都排除在外,有时即使没有引号也只有language=javascript

现在,在所有主流浏览器中,使用他的标签都没有问题。 我说的是IE,FF,Safari和Chrome的所有版本。

就我个人而言,我觉得这是懒惰的,并且完全不恰当和糟糕的编码做法是,即使没有它也可以将这样的东西遗漏掉。

任何人都知道应该同时包含两个还是仅包含两个,还是可以将两者都排除在ASP.NET中呢?

PositiveGuy asked 2020-07-12T18:33:58Z

6个解决方案

72 votes

我想现在应该进行更新,因为情况已经发生了很大变化:

对于HTML5文档类型,不再需要。 例如:我们将其放在Stack Overflow此处的页面之外。 如果您使用的是HTML5文档类型,则它是完全可选的,默认值为language="",因此绝对可以在所有当前(或什至非常旧的)浏览器中关闭它。 实际上,即使不是严格有效的HTML,即使在HTML4中也是如此。

对于HTML4文档类型(有效),您需要它。 对于真正起作用的浏览器来说,并不是必须的,它的行为也很好(从回到Netscape 2以来一直是正确的)-但它不是有效的HTML。 如果您有HTML4文档类型,请保留该文档类型并保持其有效-嘿,为什么不呢?

原始答案:

我会在所有当前的浏览器中使用language=""来确保安全,为什么在其中保留歧义以保存21个字符? language=""但是不推荐使用,我将其省略。

同样,任何验证器都将抛出错误,尽管它可能会在浏览器中起作用(除非您要处理的是非常老的东西)。

Nick Craver answered 2020-07-12T18:34:59Z

15 votes

根据w3c规范,需要type。 因此,即使大多数浏览器在没有正确指定type的情况下仍足够强大,足以正常工作,但将其显式设置为text/javascript是一个好习惯。

Justin Ethier answered 2020-07-12T18:35:19Z

14 votes

针对HTML5的W3C建议说,您不需要包括

type="text/javascript"

浏览器假定它是text / javascript,除非另外声明为其他类型。

[HTTP://Dev.我3.org/HTML5/spec/overview.HTML#他和-script-block-是-type]

Jacob answered 2020-07-12T18:35:48Z

10 votes

伟大的权威和JavaScript老师之一道格拉斯·克罗克福德(Douglas Crockford)说:

type="text/javascript"

此属性已被弃用。 它 被用来选择其他节目 的语言和特定版本 JavaScript。 不用了 别 用它。

type="text/javascript"

此属性是可选的。 以来 Netscape 2,默认编程 所有浏览器中的语言已 JavaScript。 在XHTML中,此属性 是必需的,也是不必要的。 在HTML中, 最好将其省略。 的 浏览器知道该怎么做。

您的老板可能出于“正确”或“错误”的原因(例如,他可能遵循克罗福德的建议,或者他可能只是懒惰)而这样做,但我认为您不一定可以做出判断。 如果他的HTML和JS的其余部分草率,那是另一回事。 我敢冒险说脚本标签的内容可能更像是一种宗教性的事情,例如制表符大小或大括号放置。

编辑:@coffeeaddict指出,不将适当的属性放入标记中会弄乱他的编译。 我要说的是,对于属性是严格正确还是必要的任何考虑都比任何考虑都要重要,因为项目应始终干净地构建而不会出现错误或警告。 对于验证器等,如果它们是项目标准的一部分,也是如此。

brainjam answered 2020-07-12T18:36:27Z

8 votes

如果将文档解析为HTML5,则该语言将默认为JavaScript,并且不需要任何类型的属性(以供将来参考,HTML5中没有语言属性)。

如果要使用HTML 4.x或XHTML 1.x,则默认脚本语言应根据Content-Script-Type标头的值确定,无论它是本地出现在META / meta标记中(高优先级)还是以 HTTP标头(低优先级)。 即使存在Content-Script-Type标头(本地或其他方式),HTML 4.x仍然需要type属性,因为默认脚本语言仅影响如何处理onload,onclick等属性值。 除非您要使用旧的浏览器(例如IE4,NN4,也许是IE5 / Mac?),否则在JavaScript的情况下,应该使用类型值为“ text / javascript”的type属性而不是language属性,否则请记住 Windows 98的IE6版本,因此language属性肯定已经过时了。

最后一点信息:从技术上讲,application / x-javascript是JavaScript的正确值(除非在我不知情的情况下变成了application / javascript),但不幸的是,text / javascript是跨浏览器支持最大的语言 兼容性。

Dustin answered 2020-07-12T18:36:57Z

2 votes

ASP.NET与之无关。 xhtml 1.0指示您使用带引号的type =“ text / javascript”,否则您将无法生成有效的xhmtl。

在您的页面上运行w3c验证程序,请遵守它的要求。

Stefan Kendall answered 2020-07-12T18:37:22Z

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值