molily: Umfang SelfHTMLs

Beitrag lesen

Hallo,

bei aller Ähnlichkeit solltest du einen entscheidenden Unterschied aber nicht übersehen: JScript enthält eine Reihe von nicht ECMA konformen Features. Aufgrund der Ähnlichkeit behandeln deshalb viele Leute JScript wie JavaScript und wundern sich dann über Probleme bei anderen Browsern als dem ie.

ECMAScript definiert lediglich die Grundlagen einer Programmiersprache, diese werden von JScript fast lückenlos implementiert.

Die Abweichungen von JScript (Version 5 und 6) von ECMAScript auf niedrigen Ebene, auf der sich ECMAScript bewegt, sind nicht groß.
http://msdn.microsoft.com/library/en-us/script56/html/js56jsgrpnonecmafeatures.asp
(Das sieht groß aus, verwirrt aber. Zum einen scheint eine ältere ECMAScript-Ausgabe als Vergleich zu dienen, zum anderen sind die meisten dort genannten Features sehr wohl Teil von ECMAScript. Des weiteren gibt es natürlich noch ein paar HTML-spezifische Features, die auch Teil von Netscape Core JavaScript waren. Wirkliche Microsoft-Erfindungen sind also selten.)

Richtig geklotzt hat Microsoft bei der Erfindung von JScript.NET. Das ist nämlich ein völlig aufgebohrtes ECMAScript. Da ist schon die Syntax nicht mehr konform.

Was ich bisher mit JScript beschrieb, ist der anwendungsunabhängige Sprachenkern. Im weitesten Sinne bezeichnet JScript aber alle Scripting-Techniken, die im MSIE über JavaScript/JScript benutzbar sind.

Und das sind sehr, sehr viele. Zum einen sind es Techniken aus Netscape Client JavaScript, zum anderen ist es das W3C DOM. Darin unterscheidet sich MSIE zunächst nicht von anderen Browsern.

MSIE kennt darüber hinaus aber noch sehr viele proprietäre Zusatzobjekte. Mit ECMAScript hat das aber nichts mehr zu tun, denn das W3C DOM und Netscapes Client-JavaScript ist auch nicht »ECMAScript-konform« in dem Sinne, dass es Bestandteil von ECMAScript wäre. (ECMAScript definiert überhaupt kein Dokument-Objektmodell oder Webbrowser-spezifische Techniken. ECMAScript + Netscape Client JavaScript + W3C DOM + Microsoft JScript-Zusätze kann deshalb koexistieren - wenn JScript nicht einige DOM-Grundlagen »überschreiben« würde.)

Mathias