留下来type =“text / javascript”language =“javascript”

我创build的大多数脚本标记都是在标记中包含type="text/javascript" language="javascript" 。 然而,我的老板没有。 有时候他排除了这两种情况,有时甚至没有引号就只有language=javascript

现在,我们在任何主stream浏览器中都没有带有标签的问题。 我正在谈论IE,FF,Safari和Chrome的所有版本。

就我个人而言,我觉得这是懒惰,只是完全不正确和不良的编码习惯,即使没有它,也可以把东西留下来。

任何人都知道,如果两者都应该包括在内,或者只是一个,或者可以离开ASP.NET?

我想现在应该更新一下,景观已经发生了很大变化:

对于HTML5文档,它不再是必需的 。 例如:我们把它放在Stack Overflow的页面之外。 如果您使用的是HTML5文档types,那么它是完全可选的,并且默认为text/javascript ,所以您绝对可以在每个当前(甚至是非常旧的)浏览器中closures它。 实际上,即使在HTML4中也是如此,尽pipe不是严格有效的HTML。

对于HTML4文档types(有效),您需要它 。 对于一个浏览器来说,实际上它并不是必须的,而且performance得很好(这一直是Netscape 2的一贯做法),但是它不会是有效的HTML。 如果你有一个HTML4的文档types,那么保持它,并有效 – 因为嘿,为什么不呢?


原始答案:

我会使用type="text/javascript"在当前所有的浏览器中都是安全的,为什么还要在那里保留21个字符? language=""但是被弃用,我会离开它 。

另外,任何validation器都会抛出一个错误,尽pipe它可能在浏览器内部工作(除非你正在处理一些非常古老的东西)。

根据w3c规范 , type是必需的。 所以…即使大多数浏览器都足够健壮,可以在没有正确指定type情况下工作,但最好将其明确地设置为text/javascript

W3C对HTML5的build议是说你不需要包含

type="text/javascript"

浏览器假设它是文本/ JavaScript,除非另有说明作为不同的types。

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

道格拉斯·克罗克福德是Javascript的权威和老师之一, 他这样说 :

language="javascript"

此属性已被弃用。 它被用来select其他编程语言和特定版本的JavaScript。 你不需要它。 不要使用它。

type="text/javascript"

该属性是可选的。 由于Netscape 2是所有浏览器中的默认编程语言,都是JavaScript。 在XHTML中,这个属性是必需的和不必要的。 在HTML中,最好不要使用它。 浏览器知道该怎么做。

你的老板可能是为了“正确的”或“错误的”理由(也就是说,他可能会跟着克罗克福德的build议,或者他可能只是懒惰的),但我不认为你可以做出判断。 如果他的HTML和JS的其余部分是sl,的,那是另外一回事。 我想冒险的脚本标签的内容可能更像是一个宗教的事情,如标签大小或支撑位置。

编辑: @coffeeaddict指出,不把适当的属性放入标签混淆了他的编译。 我想说,这是否属性是严格正确的或必要的任何考虑,因为项目应该始终build立干净没有错误或警告。 如果它们是项目标准的一部分,validation方也是如此。

如果文档被parsing为HTML5,则该语言将默认为JavaScript,并且不需要任何sorting属性(为了将来参考,HTML5中没有语言属性)。

如果您使用HTML 4.x或XHTML 1.x,则默认的脚本语言应该由Content-Script-Type标头的值决定,不pipe是在本地的META / meta标签(高优先级)还是作为一个HTTP头(低优先级)。 即使Content-Script-Type头部存在(本地或其他),HTML4x仍然需要type属性,因为默认的脚本语言只影响onload,onclick等属性值的处理方式。 以“text / javascript”作为值的type属性应该用在JavaScript的情况下,而不是语言属性,除非你满足于旧的浏览器(例如IE4,NN4,也许是IE5 / Mac? Windows 98的IE6版本,所以语言属性绝对过时了)。

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

ASP.NET与任何东西都无关。 xhtml 1.0规定你使用type =“text / javascript”,用引号,否则你不生产有效的xhmtl。

针对您的页面运行w3cvalidation程序,并请遵守它的要求。