退出type ="text/javascript"language ="javascript"

Pos*_*Guy 44 html javascript

我创建的大多数脚本标签,我总是包含type="text/javascript" language="javascript"在标签中.但我的老板却没有.有时他排除了两者,有时language=javascript甚至没有引号

现在,我们在任何主要浏览器中都没有出现问题.我说的是IE,FF,Safari和Chrome的所有版本.

就个人而言,我觉得这是懒惰,只是完全不正确和糟糕的编码练习,即使没有它也可以将这些东西留下来.

任何人都知道两者都应该被包含在内还是只包含一个,还是可以将它们都留在ASP.NET中?

Nic*_*ver 72

我想这应该更新,因为景观已经发生了很大变化:

对于HTML5文档类型,不再需要它.例如:我们将它从Stack Overflow的页面中删除.如果你使用的是HTML5 doctype,那么它是完全可选的,默认为text/javascript,所以你绝对可以在每个当前(甚至很旧)的浏览器中关闭它.实际上,即使在HTML4中也是如此,尽管不是严格有效的HTML.

对于HTML4 doctype(有效),您需要它.对于一个实际运行的浏览器,它并不是严格需要的,并且表现得很好(这一直都是Netscape 2) - 但它不是有效的HTML.如果你有一个HTML4 doctype,那么保持它并且有效 - 因为嘿,为什么不呢?


原答案:

我会type="text/javascript"认为在所有当前浏览器中都是安全的,为什么要在那里留下歧义以节省21个字符? language=""但是不赞成,我会把它留下来.

此外,任何验证器都会抛出一个错误,虽然它可能在浏览器内部工作(除非你处理的东西旧).

  • 不知道为什么这会被低估; 看似合理的建议. (9认同)
  • @Noldorin - 我想有人不同意......很遗憾你在投票时没有被迫发表评论,如果答案是错的,那么对其他人说*为什么*,哦,好吧. (5认同)
  • @Noldorin:同意.这么多人没有解释就投票了.真是太遗憾了.不过,你从我这里得到+1. (2认同)

Jus*_*ier 15

根据w3c规范,type是必需的.所以...尽管大多数浏览器都足够健壮,无需type正确指定,但最好将其明确设置为text/javascript.

  • `<script>`中的`type`在HTML5上是可选的.它在HTML4中是必需的.请参阅:http://stackoverflow.com/a/4195441/260080 (5认同)
  • 引用W3C规范的+1 (2认同)

Jac*_*cob 14

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

type="text/javascript"

浏览器假定它是text/javascript,除非另有说明为不同类型.

http://dev.w3.org/html5/spec/Overview.html#the-script-block-s-type


bra*_*jam 10

道格拉斯克罗克福德,Javascript的权威和教师之一,有这样的说法:

language="javascript"

此属性已被弃用.它用于选择其他编程语言和JavaScript的特定版本.你不需要它.不要使用它.

type="text/javascript"

此属性是可选的.从Netscape 2开始,所有浏览器中的默认编程语言都是JavaScript.在XHTML中,此属性是必需且不必要的.在HTML中,最好不要使用它.浏览器知道该怎么做.

你的老板可能是出于"正确"或"错误"的原因这样做(即他可能会遵循Crockford的建议,或者他可能只是懒惰),但我认为你不一定能做出判断.如果他的HTML和JS的其余部分是草率的,那就是另一回事了.我敢说,脚本标签的内容可能更像宗教信息,如标签大小或支架位置.

编辑: @coffeeaddict指出,没有将正确的属性放入标签会弄乱他的编译.我会说,不管是属性是严格正确还是必要,都要考虑任何因素,因为项目应该始终干净利落,没有错误或警告.验证器等也是如此,如果它们是项目标准的一部分.

  • Crockford错误的一个例子.HTML的当前标准使type属性成为必需.HTML 5的草稿使其成为可选. (4认同)

Dus*_*tin 8

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

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

最后一点信息:从技术上讲,application/x-javascript是JavaScript的正确值(除非它在我不知情的情况下成为应用程序/ javascript),但不幸的是text/javascript是跨浏览器方面最大的支持兼容性.