2010-05-20 2 views
19

Ich schaute auf die , und ich bemerkte, dass Sie VBScript und TCL als Sprachtyp angeben können. Das ist extrem neu für mich; Ich habe nur Javascript mit dem Skript-Tag verwendet.Welche Sprachtypen sind im HTML-Skript-Tag erlaubt?

Warum werden keine anderen Sprachen häufiger verwendet, und gibt es eine vollständige Liste der Sprachen, die Sie in diesem Tag verwenden können?

Antwort

18

Sie können alles, was Sie wollen, dort hineinlegen. Das ist der ganze Punkt von MIME-Typen.

Die Frage ist natürlich, ob der Browser Ihres Benutzers es tatsächlich interpretieren kann. Aber das ist nicht wirklich spezifisch für das <script> Element. Mein Browser beispielsweise versteht CSS nur für Stylesheets, andere verstehen XSLT. Mein Browser versteht nur HTML, XHTML, HTML5, MathML und SVG für Dokumente, andere verstehen auch PDF oder verstehen MathML nicht. Mein Browser versteht Alpha-transparente PNGs, andere nicht. Bevor das GIF-Patent auslief, gab es einige Browser, die GIFs nicht verstanden, während andere die Lizenzgebühren bezahlten (oder das Patent illegal nutzten oder in Ländern entwickelt wurden, in denen Softwarepatente illegal sind) und GIFs verstanden. Einige Browser verstehen H.264-Videos, andere Theora.

Im Allgemeinen ist die einzige Sprache, die garantiert von allen Browsern verstanden wird, die ECMAScript 3rd Edition. Die meisten Browser verstehen auch eine Teilmenge von JavaScript.

Viele Versionen von Internet Explorer verstehen VBScript.

Der CoffeeScript-Compiler kann nach ECMAScript kompiliert und in eine Website eingebettet werden, sodass Sie CoffeeScript auf Ihrer Seite über den MIME-Typ text/coffeescript verwenden können.

Es gibt ein Projekt namens HotRuby, das ein YARV-Bytecode-Interpreter ist, der in ECMAScript geschrieben wurde. Es ermöglicht Ihnen, text/ruby zu verwenden.

Microsoft hat ein Projekt namens Gestalt, die auf der Oberseite des DLR innerhalb Silverlight IronRuby und Ironpython ausgeführt wird, verwendet, Unterstützung für text/python und text/ruby (und vermutlich jede Sprache, die auf der Oberseite des DLR, zB Schema laufen kann, Smalltalk, PHP, Tcl.)

Mozilla hatte vor einiger Zeit ein Projekt namens IronMonkey, das mehrere populäre Execution Engines wie MRI Ruby, CPython, Perl und andere in Firefox integrierte, so dass all diese verwendet werden konnten Sprachen für Browser-Scripting.

Ich erinnere mich irgendwo zu lesen, dass jemand ein Plugin für tcc (winzige C-Compiler) unterstützt, die Sie verwenden könnten, text/c.

Nur ein paar Tage, Miguel de Icaza (die creater von Mono) schlug vor, dass die ISO CLI sollte als Scripting-Plattform an den Browser hinzugefügt werden, so dass Sie CIL-Bytecode für Scripting über einen application/cil MIME-Typen verwenden.

3

Warum sind andere Sprachen nicht mehr häufig verwendet, und gibt es eine komplette Liste der Sprachen, können Sie innerhalb dieses Tag verwenden?

Da JavaScript von allen Browsern unterstützt wird, im Gegensatz zu VBS, das nur von IE unterstützt wird.

Hinweis: Das language Attribut jetzt veraltet ist, verwenden Sie das Attribut type nur zB:

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

Deshalb habe ich es in meiner Frage als "Sprachtypen" bezeichnet. Obwohl es technisch gesehen keine korrekte Formulierung ist, ist mir bewusst, dass "Sprache" abgewertet wird und dies vermitteln möchte (obwohl es schwierig ist). Nichtsdestotrotz ist dies eine wichtige Erinnerung, da das Attribut abgeschrieben ist, aber ich sehe es immer noch gelegentlich ... – Corey

1

Sie eine beliebige Sprache angeben kann der Browser interpretieren kann, stelle ich mir vor. Im Moment ist text/javascript jedoch der einzige, der über Browser hinweg unterstützt wird.

VBScript ist in IE unter bestimmten Umständen verfügbar und somit (offensichtlich) auf Windows und diesen Browser beschränkt. Es ist nicht wirklich eine Option, wenn Sie Websites erstellen möchten, die über Browser und Plattformen hinweg ausgeführt werden sollen. Ich denke, Sie können auch Windows Script Host Skripte in IE verwenden, aber ich bin nicht vertraut mit den Details.

Wo haben Sie eine Implementierung von TCL gesehen? Das wäre interessant zu sehen.

Der Vollständigkeit halber versteht PHP <script language="php"> Tags, um den Anfang eines Blocks von PHP (reference) anzugeben. Dies zählt nicht wirklich in Ihrer Liste IMO, wie es gefangen und interpretiert auf der Serverseite, und es unterstützt nur die veraltete language= Syntax, aber immer noch.

+0

TCL? Ich habe es noch nie irgendwo benutzt gesehen ... aber diese W3C-Seite hat ein Beispiel dafür. Das hat meine Frage aufgeworfen; es ist sehr seltsam. – Corey

+0

@Corey können Sie einen Link posten? Ich kann es nicht sehen, ich schaue hier: http://www.w3.org/TR/REC-html40/types.html#type-script –

+0

Scrollen Sie ein wenig runter: http: //www.w3. org/TR/REC-html40/interact/scripts.html # h-18.2.2.3 – Corey

Verwandte Themen