对JavaScript使用type =“text / plain”?

时间:2012-08-23 11:49:25

标签: javascript html

我看着设置this up,只是出于好奇,但当他们声明要工作时,我有点困惑:

查找设置Google Analytics Cookie的所有Javascript元素。示例可能包括Google Analytics和StatCounter。 修改脚本代码,使type属性为“text / plain”而不是“text / javascript”

这会导致某些网络浏览器出现任何问题吗?它会导致HTML不再验证吗?

此外,“类型”属性是否真的能够达到目的?我以前只看过它分配过“text / JavaScript”吗?

3 个答案:

答案 0 :(得分:6)

如果意图是浏览器不将元素的内容解释为脚本代码,而是将其解释为未呈现的文本数据,则不会导致问题。它是脚本使用它,但否则它被忽略。好吧,在某些浏览器中,可能会使用CSS使内容可见,但默认情况下它不会显示。

使用<script type="text/plain">对HTML规范有效。即使<script type="Hello world ☺">有效,但它违反了散文要求,即属性值是MIME类型。规范并未指定其含义,但唯一可行的解​​释,以及浏览器在实践中所做的是,它不是任何脚本语言,也不会尝试执行脚本。

因此,type="text/plain"可用于故意阻止脚本的执行,同时仍将其保留在源代码中。它也可以用于携带用于某些处理的字符数据。

type属性可以用于这样的目的,它也可以用于指定除JavaScript以外的脚本语言(很少使用,但在某些环境中仍然可以)。不需要使用type属性来指定JavaScript,也不建议使用:您可能唯一能做的就是错误:如果您输入错误,例如type="text/javascript",内容将被视为未知语言,因此被忽略。

答案 1 :(得分:0)

  

这会导致某些网络浏览器出现任何问题吗?

没有

  

是否会导致HTML不再验证?

没有

  

此外,“type”属性是否真的服务于目的了?

浏览器使用它来决定运行代码的解释器(或者它们是否应该下载外部src ed代码。

将其设置为text/plain会将其设置为浏览器不具备解释器的类型(因为它不是编程语言),这就是重点。

答案 2 :(得分:-1)

根据最新的w3规范,

"application/javascript"是必须的。但正如预期的那样,IE的大多数旧版本都不支持这一点。因此,在任何地方使用"text/javascript"都是安全的。