Les différences majeures entre JavaScript dans IE et JavaScript dans les navigateurs modernes (ex, Firefox) peuvent être attribuées aux mêmes raisons derrière les différences dans les navigateurs croisés CSS / (X) HTML. À l'époque, il n'y avait pas de norme de facto; IE / Netscape / Opera ont mené une guerre de territoire, implémentant la plupart des spécifications, mais également en omettant certaines et en créant des spécifications propriétaires pour gagner des avantages les uns sur les autres. Je pourrais continuer longtemps, mais passons à la sortie d'IE8: JavaScript a été évité / méprisé pendant des années, et avec la montée en puissance de FF et le mépris de webcomm, IE a choisi de se concentrer principalement sur l'avancement de leur CSS à partir d'IE6. Et essentiellement laissé le support DOM derrière. Le support DOM d'IE8 pourrait tout aussi bien être celui d'IE6, qui a été déployé en 2001 ... donc le support DOM d'IE8 a presque dix ans de retard sur les navigateurs modernes. Si vous rencontrez des divergences JavaScript spécifiques à un moteur de mise en page, le mieux est de l'attaquer de la même manière que nous avons résolu les problèmes CSS; Cibler ce navigateur. N'UTILISEZ PAS LE BROWSER SNIFFING, utilisez la détection des fonctionnalités pour détecter votre navigateur / son niveau de support DOM.
JScript n'est pas la propre implémentation d'ECMAScript par IE; JScript était la réponse d'IE au JavaScript de Netscape, tous deux nés avant ECMAScript.
En ce qui concerne les attributs de type sur l'élément de script, type = "text / javascript" est la norme par défaut (au moins en HTML5), vous n'avez donc jamais besoin d'un attribut de type à moins que votre script ne soit pas JavaScript.
En ce qui concerne IE ne supportant pas innerHTML ... innerHTML a été inventé par IE et n'est pas encore aujourd'hui un standard DOM. D'autres navigateurs l'ont adopté car il est utile, c'est pourquoi vous pouvez l'utiliser sur plusieurs navigateurs. En changeant dynamiquement jusqu'à tableaux, MSDN dit « en raison de la structure spécifique requise par les tables, les innerText et innerHTML propriétés des objets de table et tr sont en lecture seule. » Je ne sais pas à quel point c'était vrai au départ, mais il est clair que les navigateurs modernes l'ont compris tout en faisant face aux complexités de la mise en page des tableaux.
Je recommande vivement de lire PPK sur JavaScript Scripting DOM de
Jeremy Keith JavaScript: The Good Parts de
Douglas Crockford
et Beginning JavaScript with DOM Scripting and Ajax de Christian Hellman pour bien comprendre JavaScript.
En ce qui concerne les cadres / bibliothèques, si vous ne maîtrisez pas encore très bien JavaScript, vous devez les éviter. Il y a 2 ans, je suis tombé dans le piège de jQuery, et bien que j'aie pu réaliser de magnifiques exploits, je n'ai jamais rien appris sur le codage correct de JavaScript. Avec le recul, jQuery est une boîte à outils DOM géniale, mais mon échec à apprendre les fermetures appropriées, l'héritage prototypique, etc.
JavaScript est la langue du navigateur; si vous êtes ingénieur côté client / front-end, il est de la plus haute importance que vous commandiez JavaScript. Node.js apporte la pleine inclinaison de JavaScript, je vois d'immenses progrès réalisés quotidiennement dans son développement; Le JavaScript côté serveur deviendra une norme dans un très proche avenir. Je mentionne cela pour souligner davantage à quel point JavaScript est et sera important.
JavaScript va faire plus de vagues que Rails.
Joyeux script!