Die Hauptunterschiede zwischen JavaScript im IE und JavaScript in modernen Browsern (z. B. Firefox) können auf dieselben Gründe für die Unterschiede im CSS / (X) HTML-Cross-Browser zurückgeführt werden. Früher gab es keinen De-facto-Standard; IE / Netscape / Opera führten einen Rasenkrieg, bei dem die meisten Spezifikationen implementiert, aber auch einige weggelassen und proprietäre Spezifikationen erstellt wurden, um Vorteile gegenüber einander zu erzielen. Ich könnte ausführlich weitermachen, aber lassen Sie uns mit der Veröffentlichung von IE8 fortfahren: JavaScript wurde jahrelang vermieden / verachtet, und mit dem Aufkommen von FF und der Verachtung von Webcomm konzentrierte sich IE hauptsächlich darauf, sein CSS von IE6 an weiterzuentwickeln. Und im Grunde DOM-Unterstützung hinter sich gelassen. Die DOM-Unterstützung von IE8 könnte genauso gut die von IE6 sein, die 2001 eingeführt wurde. Die DOM-Unterstützung von IE liegt also fast ein Jahrzehnt hinter modernen Browsern. Wenn Sie JavaScript-Diskrepanzen haben, die für eine Layout-Engine spezifisch sind, sollten Sie sie am besten genauso angreifen, wie wir es bei den CSS-Problemen getan haben. Targeting dieses Browsers. VERWENDEN SIE KEIN BROWSER-SNIFFING. Verwenden Sie die Funktionserkennung, um Ihren Browser / dessen DOM-Unterstützung aufzuspüren.
JScript ist keine IE-eigene Implementierung von ECMAScript. JScript war die Antwort von IE auf Netscape's JavaScript, die beide vor ECMAScript entstanden sind.
In Bezug auf Typattribute für das Skriptelement ist type = "text / javascript" der Standardstandard (zumindest in HTML5), sodass Sie niemals ein Typattribut benötigen, es sei denn, Ihr Skript ist kein JavaScript.
Soweit IE innerHTML nicht unterstützt ... innerHTML wurde von IE erfunden und ist bis heute KEIN DOM-Standard. Andere Browser haben es übernommen, weil es nützlich ist, weshalb Sie es browserübergreifend verwenden können. In Bezug auf sich dynamisch ändernde Tabellen sagt MSDN: "Aufgrund der spezifischen Struktur, die für Tabellen erforderlich ist, sind die Eigenschaften innerText und innerHTML der Tabellen- und tr-Objekte schreibgeschützt." Ich weiß nicht, wie viel davon anfangs zutraf, aber die modernen Browser haben es eindeutig herausgefunden, während sie sich mit der Komplexität des Tabellenlayouts befassten.
Ich empfehle dringend, PPK über JavaScript zu lesen.
Jeremy Keiths DOM-Scripting
Douglas Crockfords JavaScript: The Good Parts
und Christian Hellmans JavaScript - Anfang mit DOM-Scripting und Ajax , um einen guten Einblick in JavaScript zu erhalten.
Wenn Sie Frameworks / Bibliotheken noch nicht genau kennen, sollten Sie sie vermeiden. Vor 2 Jahren bin ich in die jQuery-Falle geraten, und obwohl ich großartige Leistungen vollbringen konnte, habe ich nie etwas über das richtige Codieren von JavaScript gelernt. Im Nachhinein ist jQuery ein verdammt tolles DOM-Toolkit, aber mein Versagen, die richtigen Abschlüsse, die prototypische Vererbung usw. zu lernen, hat nicht nur mein persönliches Wissen zurückgeworfen, sondern meine Arbeit begann, große Leistungstreffer zu erzielen, weil ich keine Ahnung hatte, was ich tat.
JavaScript ist die Sprache des Browsers. Wenn Sie ein Client-seitiger / Front-End-Ingenieur sind, ist es äußerst wichtig, dass Sie JavaScript beherrschen. Node.js bringt JavaScript auf Hochtouren. Ich sehe täglich enorme Fortschritte in seiner Entwicklung. Serverseitiges JavaScript wird in naher Zukunft ein Standard sein. Ich erwähne dies, um weiter zu betonen, wie wichtig JavaScript jetzt ist und sein wird.
JavaScript wird mehr Wellen schlagen als Rails.
Viel Spaß beim Scripting!