Я вырывал свои волосы, пытаясь решить эту проблему. Мы поддерживаем IE8 и используем компанию под названием «Marketo» для аналитики. Когда я загружаю их файл Javascript как внешний, а затем пытаюсь создать экземпляр класса в файле, он выдает ошибку «Ожидаемый объект» в IE8. Это не вызывает этого в Firefox или Safari.
Однако, когда я вручную вставляю содержимое внешнего тега <script>
, класс создается отлично! Проблема возникает только тогда, когда файл Javascript является внешним. Я должен использовать внешний, потому что Marketo регулярно обновляет их код, и я не могу продолжать копирование / вставку.
Вот внешний: http://munchkin.marketo.net/munchkin.js
Вот как я загружаю файл:
<script type="text/javascript" src="http://munchkin.marketo.net/munchkin.js"></script>
Вот как я создаю экземпляр класса:
<script type="text/javascript">
mktoMunchkin("300-EOJ-215");
</script>
Использование setTimeout()
ничем не помогает (я подумал, что это может быть медленный сервер, вызывающий проблему синхронизации):
<script type="text/javascript">
setTimeout(function() {
mktoMunchkin("300-EOJ-215");
}, 5000);
</script>
Есть идеи?
ОБНОВЛЕНИЕ : выяснили, в чем проблема. Мы доставляли нашу веб-страницу через HTTPS и перетаскивали файл Marketo munchkin.js через HTTP, с чем по какой-либо причине IE8 (а не Firefox, Safari и т. Д.) Были проблемы. Переключил URL на https://munchkin.marketo.net/munchkin.js
и все было в порядке.