stDragon
@stDragon
front-end разработчик

Почему ie8 не видит функцию из другого файла?

Имеется два файла js подключенные через bitrix
$APPLICATION->AddHeadScript(/'js/modal.js');
$APPLICATION->AddHeadScript(/'js/main.js');
внутри них
modal.js:
function modalController(){
  ...
}

main.js:
jQuery(document).ready(function($) {
	window.App = {
            ...
            modal: new modalController(),
            notice: new ProductNotice(),
            favorite: new MyFavorites(),
       };
});

во всех браузерах все в порядке, как дошел до IE8 начинается мрак. modalController, ProductNotice, MyFavorites функция не определена. Если же объединить файлы, то все встает в норму, не могу понять почему main.js не видит половину функций из файлов, которые загружены были раньше.
Грешу на создание через NEW, но хз как тут переписать даже если в этом проблема
  • Вопрос задан
  • 321 просмотр
Пригласить эксперта
Ответы на вопрос 2
Не используйте ie8.

А вообще я не силен конечно в IE - у меня его банально нет, но могу предположить такую причину:
По каким-то тайным соображениям ie8 выполняет скрипты асинхронно и файл modal.js не выполнился еще до выполнения main.js Попробуйте включить в настройке главного модуля битрикс объединение js файлов - это должно снять эту проблему. На это указывает и "Если же объединить файлы, то все встает в норму"
Ответ написан
@GeraldIstar
Frontend
Проблема кажется в не очень адекватной работе jQuery(document).ready в IE8, вроде бы давно сталкивался с такой проблемой, но не помню, ни деталей, ни чем закончилась, но глядеть советую в эту сторону.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы