我在查看script标签的W3C规范时发现,您可以将VBScript和TCL指定为语言类型。这对我来说非常新颖;我只看到过使用JavaScript与script标签一起使用。
其他语言为什么不常用?是否有可使用于此标签内的完整语言列表?
我在查看script标签的W3C规范时发现,您可以将VBScript和TCL指定为语言类型。这对我来说非常新颖;我只看到过使用JavaScript与script标签一起使用。
其他语言为什么不常用?是否有可使用于此标签内的完整语言列表?
你可以在这里放任何想要的东西。这就是 MIME 类型的全部意义。
问题当然在于您的用户的浏览器是否能够实际解释它。但这并不是特定于 <script>
元素的。例如,我的浏览器只理解用于样式表的 CSS,而其他浏览器还理解 XSLT。我的浏览器只能理解 HTML、XHTML、HTML5、MathML 和 SVG 用于文档,其他浏览器还理解 PDF 或不理解 MathML。我的浏览器理解 alpha 透明 PNG,而其他浏览器则不支持。在 GIF专利过期之前,有些浏览器不理解GIF格式,而其他浏览器则支付了许可费用(或非法使用专利,或者在禁止软件专利的司法管辖区开发),从而可以理解GIF。一些浏览器理解H.264视频,而其他浏览器则理解Theora。
总的来说,唯一保证所有浏览器都理解的语言是 ECMAScript 第三版。大多数浏览器也理解 JavaScript 的某些子集。
许多版本的 Internet Explorer 理解 VBScript。
CoffeeScript 编译器可以编译为 ECMAScript 并嵌入到网站中,这样您就可以通过 text/coffeescript
MIME 类型在页面中使用 CoffeeScript。
有一个名为 HotRuby 的项目,它是用 ECMAScript 编写的 YARV 字节码解释器。这使您可以使用 text/ruby
。
Microsoft 有一个名为 Gestalt 的项目,它使用 IronRuby 和 IronPython 在 Silverlight 中运行 DLR 来提供对 text/python
和 text/ruby
(以及可能运行在 DLR 之上的任何语言,例如 Scheme、Smalltalk、PHP、Tcl 等)的支持。
Mozilla 以前有一个名为 IronMonkey 的项目,其中嵌入了多个流行的执行引擎,如 MRI Ruby、CPython、Perl 等,以允许在浏览器脚本中使用所有这些语言。
我记得在某个地方读到过有人构建了一个 tcc(tiny C 编译器)插件,可以使用text/c
。
就在几天前,Mono的创始人Miguel de Icaza建议将ISO CLI添加到浏览器作为脚本平台,允许您通过application/cil
MIME类型使用CIL字节码进行脚本编写。
为什么其他语言不常用,是否有一个完整的语言列表可在此标记中使用?
因为JavaScript被所有浏览器支持,而VBS仅受IE支持。
注意:现在language
属性已弃用,请仅使用type
属性,例如:
<script type="text/javascript">
...
</script>
您可以指定浏览器可以解释的任何语言,我想。但目前,text/javascript
是所有浏览器唯一支持的语言。
在某些情况下,IE 中提供了 VBScript,并且(显然)仅限于 Windows 和该浏览器。如果要构建可在各种浏览器和平台上运行的网站,则不能选择此选项。我认为您还可以在 IE 中使用 Windows 脚本主机 脚本,但我不熟悉详细信息。
您在哪里看到了 TCL 的实现?这将很有趣。
为了完整起见,PHP 理解 <script language="php">
标签以指定 PHP 代码块的开始(参考)。在我的意见中,这并不算在您的列表中,因为它在服务器端被捕获和解释,并且它仅支持已弃用的language=
语法。
<script type="text/x-game-map">
标签中嵌入游戏地图数据的示例。) - wlnirvana作者必须使用有效的MIME类型字符串来表示数据块,该字符串不是JavaScript MIME类型本质匹配
,这似乎表明像text/c
和text/ruby
这样的类型仍然有效 - 只是它们现在被称为“数据块”。然后可能由浏览器或其他脚本处理这些数据块,其中其他脚本语言可能会发挥作用。 - wlnirvana