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