Основные различия между JavaScript в IE и JavaScript в современных браузерах (например, Firefox) могут быть отнесены к тем же причинам, что и различия в кроссбраузерности CSS / (X) HTML. Когда-то не было стандарта де-факто; IE / Netscape / Opera вели войну за территорию, реализуя большинство спецификаций, но также опуская некоторые из них, а также создавая собственные спецификации, чтобы получить преимущества друг перед другом. Я мог бы продолжить, но давайте перейдем к выпуску IE8: JavaScript избегали / презирали в течение многих лет, а с появлением FF и пренебрежением к webcomm IE решил сосредоточиться в основном на продвижении своего CSS с IE6. И в основном оставил поддержку DOM. Поддержка DOM в IE8 может быть такой же, как и в IE6, выпущенном в 2001 году ... так что поддержка DOM в IE почти на десять лет отстает от современных браузеров. Если у вас есть несоответствия JavaScript, характерные для механизма компоновки, лучше всего атаковать его так же, как мы взяли на себя проблемы с CSS; Ориентация на этот браузер. НЕ ИСПОЛЬЗУЙТЕ ОБРАБОТКУ БРАУЗЕРА, используйте обнаружение функций, чтобы обнаружить ваш браузер / его уровень поддержки DOM.
JScript не является собственной реализацией ECMAScript IE; JScript был ответом IE на JavaScript Netscape, оба из которых появились до ECMAScript.
Что касается атрибутов типа в элементе скрипта, type = "text / javascript" является стандартом по умолчанию (по крайней мере, в HTML5), поэтому вам никогда не понадобится атрибут типа, если ваш скрипт не является JavaScript.
Поскольку IE не поддерживает innerHTML ... innerHTML был изобретен IE и до сих пор НЕ является стандартом DOM. Другие браузеры приняли его, потому что он полезен, поэтому вы можете использовать его в разных браузерах. Что касается динамически изменяющихся таблиц, MSDN сообщает, что «из-за специфической структуры, требуемой таблицами, свойства innerText и innerHTML объектов table и tr доступны только для чтения». Я не знаю, насколько это было правдой изначально, но очевидно, что современные браузеры поняли это, имея дело со сложностями компоновки таблиц.
Я настоятельно рекомендую прочитать PPK по JavaScript
Джереми Кейта « Сценарии DOM»
Дугласа Крокфорда « JavaScript: хорошие части»
и Кристиана Хеллмана « Начальный JavaScript с DOM-сценариями и Ajax», чтобы получить четкое представление о JavaScript.
Что касается фреймворков / библиотек, если вы еще не очень хорошо разбираетесь в JavaScript, вам следует их избегать. 2 года назад я попал в ловушку jQuery, и, хотя мне удалось добиться великолепных результатов, я ни черта не узнал о правильном кодировании JavaScript. Оглядываясь назад, можно сказать, что jQuery - это потрясающий набор инструментов DOM, но моя неспособность научиться правильным замыканиям, прототипному наследованию и т. Д. Не только вернула мои личные знания, но и моя работа начала сильно падать по производительности, потому что я понятия не имел, что я делаю.
JavaScript - это язык браузера; если вы клиентский / интерфейсный инженер, крайне важно, чтобы вы использовали JavaScript. Node.js представляет JavaScript на полную катушку, я вижу огромные успехи, предпринимаемые ежедневно в его разработке; Серверный JavaScript станет стандартом в самом ближайшем будущем. Я упоминаю об этом, чтобы еще раз подчеркнуть, насколько важен JavaScript сейчас и будет.
JavaScript вызовет больше волнений, чем Rails.
Удачного сценария!