Le principali differenze tra JavaScript in IE e JavaScript nei browser moderni (ad es. Firefox) possono essere attribuite alle stesse ragioni alla base delle differenze nel cross-browser CSS / (X) HTML. In passato non c'era uno standard de facto; IE / Netscape / Opera hanno combattuto una guerra per il territorio, implementando la maggior parte delle specifiche, ma anche omettendone alcune e creando specifiche proprietarie per ottenere vantaggi l'una dall'altra. Potrei andare avanti a lungo, ma passiamo al rilascio di IE8: JavaScript è stato evitato / disprezzato per anni, e con l'ascesa di FF e il disprezzo del webcomm, IE ha scelto di concentrarsi principalmente sull'avanzamento del proprio CSS da IE6 in poi. E in pratica ha lasciato il supporto DOM. Il supporto DOM di IE8 potrebbe anche essere IE6, lanciato nel 2001 ... quindi il supporto DOM di IE è indietro di quasi un decennio rispetto ai browser moderni. Se si riscontrano discrepanze JavaScript specifiche di un motore di layout, la soluzione migliore è attaccarlo nello stesso modo in cui abbiamo affrontato i problemi CSS; Targeting di quel browser. NON USARE LO SNIFF DEL BROWSER, usa il rilevamento delle funzionalità per fiutare il tuo browser / il suo livello di supporto DOM.
JScript non è l'implementazione di ECMAScript di IE; JScript era la risposta di IE al JavaScript di Netscape, entrambi nati prima di ECMAScript.
Per quanto riguarda gli attributi di tipo sull'elemento script, type = "text / javascript" è lo standard predefinito (almeno in HTML5), quindi non è mai necessario un attributo di tipo a meno che lo script non sia JavaScript.
Per quanto riguarda IE che non supporta innerHTML ... innerHTML è stato inventato da IE ed è ancora oggi NON uno standard DOM. Altri browser lo hanno adottato perché è utile, motivo per cui puoi utilizzarlo cross-browser. Per quanto riguarda le tabelle che cambiano dinamicamente, MSDN dice "a causa della struttura specifica richiesta dalle tabelle, innerText e innerHTML proprietà della tabella e degli oggetti tr sono di sola lettura". Non so quanto di ciò fosse vero inizialmente, ma chiaramente i browser moderni l'hanno capito mentre si occupavano delle complessità del layout delle tabelle.
Consiglio vivamente di leggere PPK su JavaScript Script DOM di
Jeremy Keith JavaScript: The Good Parts di
Douglas Crockford e JavaScript iniziale di
Christian Hellman con DOM Scripting e Ajax per avere una buona conoscenza di JavaScript.
Per quanto riguarda Framework / Librerie, se non hai ancora una buona conoscenza di JavaScript, dovresti evitarli. 2 anni fa sono caduto nella trappola di jQuery e, sebbene fossi in grado di realizzare imprese magnifiche, non ho mai imparato nulla sulla codifica corretta di JavaScript. Col senno di poi, jQuery è un fantastico toolkit DOM, ma la mia incapacità di apprendere chiusure adeguate, eredità prototipica, ecc., Non solo ha ripristinato le mie conoscenze personali, il mio lavoro ha iniziato a ricevere enormi successi di prestazioni perché non avevo idea di cosa stessi facendo.
JavaScript è la lingua del browser; se sei un ingegnere lato client / front-end, è della massima importanza che comandi JavaScript. Node.js sta portando JavaScript a pieno regime, vedo passi enormi compiuti ogni giorno nel suo sviluppo; JavaScript lato server sarà uno standard nel prossimo futuro. Lo menziono per enfatizzare ulteriormente quanto sia importante JavaScript ora e lo sarà.
JavaScript farà più ondate di Rails.
Buon script!