HTML脚本标记中允许哪些语言类型?

时间:2010-05-20 08:19:11

标签: html w3c script-tag

我正在查看W3C specs for the script tag,我注意到您可以将VBScript和TCL指定为语言类型。这对我来说是非常新的;我只见过与脚本标签一起使用的Javascript。

为什么其他语言不常用,是否有可在此标记中使用的完整语言列表?

3 个答案:

答案 0 :(得分:23)

你可以把任何你想要的东西放在那里。这是MIME类型的整点

问题当然是您的用户的浏览器是否可以实际解释它。但这并不是<script>元素特有的。例如,我的浏览器只能理解样式表的CSS,其他人也理解XSLT。我的浏览器只能识别文档的HTML,XHTML,HTML5,MathML和SVG,其他人也理解PDF或不理解MathML。我的浏览器理解alpha透明的PNG,而其他人则不然。在GIF专利用尽之前,有些浏览器不了解GIF,而其他浏览器支付了许可费(或者非法使用了专利或者在软件专利非法的司法管辖区开发了这些专利,并且确实理解了GIF)。有些浏览器了解H.264视频,其他浏览器则了解Theora。

通常,所有浏览器都能保证理解的唯一语言是ECMAScript 3rd Edition。大多数浏览器也了解JavaScript的某些子集。

许多版本的Internet Explorer都了解VBScript。

可以将CoffeeScript编译器编译为ECMAScript并嵌入到网站中,以便您可以通过text/coffeescript MIME类型在页面中使用CoffeeScript。

有一个名为HotRuby的项目,它是一个用ECMAScript编写的YARV字节码解释器。它允许您使用text/ruby

Microsoft有一个名为Gestalt的项目,该项目使用在Silverlight内部的DLR上运行的IronRuby和IronPython来支持text/pythontext/ruby(并且可能是任何语言可以在DLR之上运行,例如Scheme,Smalltalk,PHP,Tcl。)

一段时间以来,Mozilla有一个名为IronMonkey的项目,它将多个流行的执行引擎(例如MRI Ruby,CPython,Perl等)嵌入到Firefox中,允许使用所有这些语言进行浏览器脚本编写。

我记得在某处某人为tcc(微型C编译器)支持构建了一个插件,允许你使用text/c

就在几天前,Miguel de Icaza(Mono的创建者)建议将ISO CLI作为脚本平台添加到浏览器中,允许您通过application/cil使用CIL字节码进行脚本编写MIME类型。

答案 1 :(得分:3)

  

为什么其他语言不多   常用的,有完整的   您可以使用的语言列表   这个标签?

因为所有浏览器都支持javascript,而不像只有IE支持的VBS。

注意:现在不推荐使用language属性,仅使用type属性,例如:

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

答案 2 :(得分:1)

我可以指定浏览器可以解释的任何语言。但是,目前,text/javascript是唯一支持跨浏览器的人。

VBScript在某些情况下可以在IE中使用,因此(显然)仅限于Windows和该浏览器。如果您想构建跨浏览器和平台运行的网站,那么这不是一个真正的选择。我想你也可以在IE中使用Windows Script Host脚本,但我不熟悉这些细节。

您在哪里看到TCL的实施?这很有意思。

为了完整起见,PHP理解<script language="php">标签以指定PHP块的开头(reference)。这并没有真正计入您的列表IMO,因为它在服务器端被捕获和解释,它只支持弃用的language=语法,但仍然。