省去类型=”;text/javascript“;语言=”;javascript";

省去类型=”;text/javascript“;语言=”;javascript";,javascript,html,Javascript,Html,我创建的大多数脚本标记,我总是在标记中包含type=“text/javascript”language=“javascript”。然而,我的老板没有。有时他将两者都排除在外,有时甚至没有引号,他也只有language=javascript 现在,在任何主流浏览器中,他的标签都没有问题。我说的是IE、FF、Safari和Chrome的所有版本 就我个人而言,我觉得这是一种懒惰,完全不恰当的、糟糕的编码实践,即使没有它也能工作 有人知道是两个都应该包含,还是只包含一个,还是可以在ASP.NET中同时

我创建的大多数脚本标记,我总是在标记中包含
type=“text/javascript”language=“javascript”
。然而,我的老板没有。有时他将两者都排除在外,有时甚至没有引号,他也只有
language=javascript

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

就我个人而言,我觉得这是一种懒惰,完全不恰当的、糟糕的编码实践,即使没有它也能工作


有人知道是两个都应该包含,还是只包含一个,还是可以在ASP.NET中同时删除这两个吗?

根据,需要键入
。所以尽管大多数浏览器都足够健壮,可以在没有正确指定
类型的情况下正常工作,但最好将其显式设置为
text/javascript

,我想这应该在环境发生了很大变化的情况下进行更新:

对于HTML5 doctype,不再需要它。例如:我们在堆栈溢出时将其从页面中删除。如果您使用的是HTML5 doctype,那么它是完全可选的,默认为
text/javascript
,因此您完全可以在每个当前(甚至非常旧的)浏览器中禁用它。事实上,即使在HTML4中也是如此,尽管这不是严格有效的HTML

对于HTML4 doctype(要有效),您需要它。对于一个浏览器来说,它并没有严格的必要性,它的表现也很好(在Netscape 2中一直是这样),但它不是有效的HTML。如果您有一个HTML4 doctype,那么请保留它并使其有效-因为嘿,为什么不呢


原始答复:

我会使用
type=“text/javascript”
在所有当前浏览器中都是安全的,为什么要保留歧义以保存21个字符呢


此外,任何验证器都会抛出一个错误,尽管它可能在浏览器内部工作(除非您处理的是非常旧的东西)。

ASP.NET与任何事情都无关。XHTML1.0规定您使用type=“text/javascript”加引号,否则您将无法生成有效的xhtml


针对您的页面运行,并请遵守其要求。

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

如果您要适应HTML4.x或XHTML1.x,那么默认脚本语言应该根据内容脚本类型头的值来确定,无论是以META/META标记(高优先级)本地显示还是以HTTP头(低优先级)本地显示。HTML 4.x仍然需要type属性,即使内容脚本类型标头存在(本地或其他),因为默认脚本语言只影响onload、onclick等属性值的处理方式。在javascript的情况下,应该使用带有“text/javascript”作为值的type属性,而不是language属性,除非您是为了迎合旧的浏览器(例如IE4、NN4,也许是IE5/Mac?;请记住,IE6有一个Windows 98版本,因此language属性肯定已经过时了)

最后一点信息:从技术上讲,application/x-javascript是javascript的正确值(除非它在我不知道的情况下变成application/javascript),但不幸的是,text/javascript是跨浏览器兼容性方面最受支持的,Javascript的权威和老师之一:

language=“javascript”

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

type=“text/javascript”

此属性是可选的。自从 Netscape 2,默认编程 所有浏览器中的语言都已更新 JavaScript。在XHTML中,此属性 这是必需的,也是不必要的。在HTML中, 最好把它删掉。这个 浏览器知道该做什么

你的老板这样做可能是出于“正确”或“错误”的原因(即,他可能听从了Crockford的建议,也可能只是懒惰),但我认为你不一定能做出判断。如果他剩下的HTML和JS都是草率的,那就另当别论了。我敢说,script标签的内容可能更像是一个宗教性的东西,比如标签大小或括号位置


编辑:@coffeeaddict指出,没有将正确的属性放入标记会弄乱他的编译。我要说的是,这胜过任何关于属性是否严格正确或必要的考虑,因为项目应该始终干净地构建,没有错误或警告。验证程序等也是如此,如果它们是项目标准的一部分。

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

type="text/javascript"
浏览器假定它是
text/javascript
,除非另外声明为不同类型


不知道为什么这项议案被否决;这似乎是一个合理的建议。@Noldorin-我想有人不同意……很遗憾你在否决投票时没有被迫留下评论,如果答案是错误的,那么告诉别人为什么会有帮助,哦,好吧。@Noldorin:同意。这么多人没有解释就投了反对票。真可惜。但是你从我这里得到+1。22个字符+空格。同意-1=>评论,也许作者可以对凡人(管理员和神灵看到的)保持空白。关于Meta抱歉的讨论。。。这里有点让死人复活。我知道这个问题已经问了4年了,但我只想指出,在HTML5中,type=”“属性不再是必需的,默认为“text/javascript”:我还想指出,“text/javascript”在技术上已经过时,而“applic”