Какие типы языков разрешены в теге HTML-сценария? - PullRequest
23 голосов
/ 20 мая 2010

Я просматривал спецификации W3C для тега сценария и заметил, что вы можете указать VBScript и TCL в качестве типа языка. Это чрезвычайно ново для меня; Я только видел Javascript, который используется с тегом script.

Почему другие языки не используются чаще, и есть ли полный список языков, которые вы можете использовать в этом теге?

Ответы [ 3 ]

23 голосов
/ 20 мая 2010

Вы можете положить туда все, что захотите.В этом вся суть типов MIME.

Вопрос, конечно, в том, действительно ли браузер вашего пользователя может его интерпретировать.Но это не совсем относится к элементу <script>.Мой браузер, например, понимает CSS только для таблиц стилей, другие также понимают XSLT.Мой браузер понимает только HTML, XHTML, HTML5, MathML и SVG для документов, другие также понимают PDF или не понимают MathML.Мой браузер понимает альфа-прозрачные PNG, другие - нет.До истечения срока действия патента GIF были некоторые браузеры, которые не понимали GIF, в то время как другие платили лицензионные сборы (или использовали патент незаконно, или были разработаны в юрисдикциях, где патенты на программное обеспечение являются незаконными) и понимали GIF.Некоторые браузеры понимают видео H.264, другие - Theora.

В общем, единственным языком, который гарантированно понимают все браузеры, является ECMAScript 3rd Edition.Большинство браузеров также понимают некоторое подмножество JavaScript.

Многие версии Internet Explorer понимают VBScript.

Компилятор CoffeeScript может быть скомпилирован в ECMAScript и встроен в веб-сайт, так что вы можете использовать CoffeeScript вВаша страница через тип text/coffeescript MIME.

Есть проект под названием HotRuby, который является интерпретатором байт-кода YARV, написанным на ECMAScript.Это позволяет вам использовать text/ruby.

У Microsoft есть проект под названием Gestalt, который использует IronRuby и IronPython, работающие поверх DLR внутри Silverlight, чтобы обеспечить поддержку text/python и text/ruby (и предположительно любой язык, который может работать поверх DLR, например Scheme, Smalltalk, PHP, Tcl.)

Некоторое время назад Mozilla разработала проект под названием IronMonkey, в который было встроено несколько популярных исполнений.движки, такие как MRI Ruby, CPython, Perl и другие, в Firefox, позволяющие использовать все эти языки для сценариев браузера.

Я помню, как где-то читал, что кто-то создал плагин для поддержки tcc (крошечного компилятора C),который позволил бы вам использовать text/c.

Всего пару дней назад Мигель де Иказа (создатель Mono) предложил добавить CLI ISO в браузер в качестве платформы сценариев, что позволит вамиспользовать байт-код CIL для сценариев с типом application/cil MIME.

3 голосов
/ 20 мая 2010

Почему другие языки не более обычно используется, и есть ли полный список языков, которые вы можете использовать в этот тег?

Поскольку javascript поддерживается всеми браузерами, в отличие от VBS, который поддерживается только IE.

Примечание: Атрибут language устарел, используйте только атрибут type, например:

<script type="text/javascript">
...
</script>
1 голос
/ 20 мая 2010

Вы можете указать любой язык, который может интерпретировать браузер. На данный момент, однако, text/javascript - единственный поддерживаемый браузер.

VBScript доступен в IE при некоторых обстоятельствах и поэтому (очевидно) ограничен Windows и этим браузером. На самом деле это не вариант, если вы хотите создавать веб-сайты для браузеров и платформ. Я думаю, что вы также можете использовать Windows Script Host скрипты в IE, но я не знаком с деталями.

Где вы видели реализацию TCL? Это было бы интересно посмотреть.

Для полноты картины PHP понимает теги <script language="php">, чтобы указать начало блока PHP ( ссылка ). На самом деле это не считается в вашем списке IMO, поскольку он перехватывается и интерпретируется на стороне сервера, и , он поддерживает только устаревший синтаксис language=, но все же.

...