HTML <script language="$var" , 哪些 $var 被接受?

HTML <script language="$var" , What $var are accepted?

  <script language="JavaScript1.2" ...
  <script language="JavaScript"  ...

这些声明会使 JavaScript 执行不同吗?

language 属性已过时,浏览器应仅尊重 type="" 属性。

根据历史记录,DOM API 曾(表面上仍然是)为许多不同的语言设计,W3C 并未特别认可 JavaScript。 Browsers have, at one point, supported:

  • JavaScript/ECMAScript
  • VBScript (Internet Explorer)
  • JScript(微软对 ECMAScript 的扩展)
  • tcl (referenced by the HTML4.01 specification)
  • Rexx(OS/2 上的 IBM WebExplorer)
  • Python(由马赛克短暂支持)

所以这个想法是不同的浏览器可以自由地支持他们想要的任何语言,如果它们使用某种操作系统内置语言而不是嵌入浏览器自己的语言来执行脚本,那么它可能是特定于平台的代码库(比如 Internet Explorer 中的 JScript/VBScript 来自 Windows' Active Scripting feature,它不是 IE 内置的(直到 IE9),或 Unix 上的 tcl

因此,在 Internet Explorer 上,我知道 IE 会使用 language="" 属性来查找其他活动脚本语言(如果已安装)- 因此,如果您安装了第三方脚本引擎,例如 "ActivePerl" 甚至 Fortran 也可以在 HTML 中的 <script> 元素中工作,这有点疯狂。

直接回答你的问题(有哪些可能的值),答案是 "no-one knows":该属性早在 1998 年就在 HTML4.01 规范中被弃用,正是因为没有标准化列表language="" 属性的值:

https://www.w3.org/TR/html4/interact/scripts.html#adef-language

language This attribute specifies the scripting language of the contents of this element. Its value is an identifier for the language, but since these identifiers are not standard, this attribute has been deprecated in favor of type.

对于像这样的大多数简单问题,一个好的方法是先使用 MDN(Mozilla 开发人员网络)进行搜索,然后查看结果。

谷歌搜索:mdn 脚本语言

这给出了 MDN 页面 <script>: The Script element,更具体地说:

Deprecated attributes

language

Like the type attribute, this attribute identifies the scripting language in use. Unlike the type attribute, however, this attribute’s possible values were never standardized. The type attribute should be used instead.