Веб-приложение Backbone.js непригодно для использования в Internet Explorer

Я разработал мое веб-приложение без тестирования его на IE. Хотя он отлично работал на всех браузерах, а именно. Chrome, Firefox, Safari, но когда дело доходит до IE, есть странное поведение.

Иногда приложение загружается, а несколько раз пустая страница загружается, как будто ни одно из событий "привязки" не имеет никакого эффекта.

И в то время, когда приложение загружается, панель навигации частично отсутствует. Я не могу показать вам код прямо сейчас, потому что я не уверен, какую часть показать и где я делаю это неправильно.

Если кто-то из вас может предоставить мне контрольный список того, что проверить и какие инструменты будут идеально подходят для отладки в IE, тогда это было бы здорово.

И если кто-то из вас может рассказать мне самые распространенные ошибки backbone.js в IE, это тоже поможет.

PS: версия IE, которую я тестирую с помощью: IE8

Ответ 1

Некоторые проблемы в IE:

Запятые запятые в объектах:

например.

 App.model = Backbone.Model.extend({
   url: "/foo/bar",

   validate: function() {
   },
 });

Должно быть:

 App.model = Backbone.Model.extend({
   url: "/foo/bar",

   validate: function() {
   }
 });

Использование функций, недоступных в IE, таких как lastIndexOf()

Третье, что нужно проверить, - это недопустимый HTML. IE может быть особенно придирчивым к вашей структуре HTML. Убедитесь, что все открытые теги имеют соответствующий тег close или закрываются с помощью />

Если вы используете методы JSON, такие как JSON.parse() и JSON.stringify(), тогда обязательно включите JSON-библиотеку, такую ​​как JSON2.

Ответ 2

Если вы используете Windows 7, вы должны перейти на IE9. Затем вы можете использовать инструменты разработчика IE для отладки вашей страницы. Он похож на использование firebug или инструментов разработчика webkit. С помощью инструментов разработчика IE вы можете эмулировать обратно в IE7.

Если вы используете XP, вы должны получить Windows 7, а затем перейти на IE9.

Кроме того, вы должны использовать что-то вроде es5 shims. Это обеспечивает функциональность javascript, которая присутствует в современных браузерах, но не в старых версиях IE.

Ответ 3

Динамическое связывание не поддерживается MSIE < 10, но его разработка в MSIE 10. Коды jQuery, такие как .show(), hide(), могут работать в статической привязке, но в случае Backbone Node подобная работа фрейма с использованием динамической привязки, шаблонов и других технологий может не работать на нем MSIE 10 сможет поймать на нем

Ответ 4

Я обнаружил, что ваши HTML-шаблоны должны быть хорошо сформированными HTML. Chrome и Firefox кажутся намного более прощающими, но с IE 8 включение плохого вызвало пустой просмотр, который будет отображаться.