为啥javascript标签使用“文本”?

Posted

技术标签:

【中文标题】为啥javascript标签使用“文本”?【英文标题】:Why do javascript tags use "text"?为什么javascript标签使用“文本”? 【发布时间】:2011-09-11 14:42:09 【问题描述】:

每当我们编写 javascript 时,我们都是这样声明的-

      <Script type="text/javascript"> 
      . . .
      . . .
      . . . </script>

但我不明白为什么它被声明为文本

【问题讨论】:

What is the Javascript MIME Type? What belongs in the type attribute of a script tag?的可能重复 【参考方案1】:

因为它是。 Javascript 源是文本。该谓词将确定数据的传输方式。然后,文本的类型(Javascript 源代码)决定了它的使用方式。

【讨论】:

【参考方案2】:

类型 = 内容类型:

此属性指定元素内容的脚本语言并覆盖默认脚本语言。脚本语言被指定为内容类型(例如,“text/javascript”)。作者必须为此属性提供一个值。该属性没有默认值。

参考:w3

【讨论】:

这不能解释为什么它是“文本”类型。【参考方案3】:

出于遗留原因。 Technically,我们应该使用application/javascriptapplication/ecmascript,但实际上没有人这样做。

【讨论】:

【参考方案4】:

因为它是纯文本而不是图像/或应用程序/但是它可能必须是应用程序,但没有人使用它,IE会失败

因为 text 是原来的样子,如果我们更改它,某些浏览器会失败,所以您应该保留 text/javascript。现在自从 html5 以来它被删除了,并且由于默认的 IS javascript,很多 SO 人主张简单地删除它。这可能会在某些 DOCTYPES 中产生验证错误

<script>
alert("UNLESS this is IE and there is a VBScript as the first script on the page,"+
  "this WILL be JavaScript in all known browsers");
</script>

这也是不使用 onclick="javascript: something()" 的一个很好的理由,除非您使用某些 IDE 并希望快速找到您的内联处理程序

What is the javascript MIME type for the type attribute of a script tag?

链接到Specifying the scripting language

【讨论】:

【参考方案5】:

type 属性标识 &lt;script&gt; 和之间的内容 &lt;/script&gt; 标签。

MIME 类型由两部分组成: 一种媒体类型和一种子类型。为了 JavaScript,MIME 类型是 “文本/javascript”。

尽管正如 Douglas Crockford 所说的 leave it out。

【讨论】:

【参考方案6】:

text type 的选择可能没有任何具体原因:由于 JavaScript 是文本的,他们选择了 text

但是对于这种内容使用 text 类型是有问题的,因为line breaks must be represented as a CRLF and vice versa 和default value of the charset parameter is assumed to be US-ASCII(另外还有HTTP specified ISO 8859-1 as default charset)。

这就是他们介绍application/javascript as the MIME type for JavaScript的原因。

【讨论】:

以上是关于为啥javascript标签使用“文本”?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的多标签文本分类 LSTM 表现不佳?

为啥 Qt::mightBeRichText() 不能将 HTML 表格标签识别为富文本?

为啥在运行时添加 <script> 标签不会加载 javascript 文件? (使用 react.js)

为啥我的 IBAction 更改标签文本不起作用?

在标签javascript中使用输入类型值将输入文本字段更改为标签

如何在javascript中将文本分配给标签?