Не удается добавить тег <script> в <head> в Chrome

0

Недавно я добавил на свой сайт стороннюю библиотеку javascript для управления подписками по электронной почте:

<script type="text/javascript" src="http://forms.aweber.com/form/catID/formID.js"></script>

Этот файл javascript содержит строку для загрузки другого файла javascript, чтобы создать popover, отображаемый на странице:

var script = document.createElement('script');
script.src = "http://forms.aweber.com/form/styled_popovers_and_lightboxes.js";
script.type = 'text/javascript';
document.getElementsByTagName('HEAD')[0].appendChild(script);

Как ни странно, этот скрипт загружается отлично в Safari, IE и Firefox, но в Chrome он не загружается:

Изображение 174551

Тем не менее я могу загрузить тот же скрипт на новой вкладке. Когда я отлаживаю сетевой запрос, единственная информация, которую я могу собрать, заключается в том, что ответа не было:

Изображение 174551

Почему Chrome (только) не сможет загрузить этот скрипт?

  • 1
    Мне действительно трудно поверить, что ваш код действительно работает в Firefox или любом другом браузере. Это может не привести к ошибке, но я не вижу, как скрипт действительно будет загружен.
  • 0
    извините, ребята, я сделал ленивую ошибку и должен был просто скопировать / вставить. Я обновил фрагмент кода, чтобы отразить вызов сценария. Chrome все еще не может загрузить мой скрипт, хотя все другие браузеры выполняют запрос
Теги:
google-chrome

3 ответа

1
Лучший ответ

Этот скрипт заблокирован AdBlocker в Chrome. Если вы отключите его, он должен работать.

Может быть, вы могли бы разместить этот скрипт на своем сервере? Или вам нужно будет уведомить своих пользователей о том, что они должны отключить их AdBlocker, чтобы использовать все на этом сайте, но это, вероятно, не сделает их счастливыми.

  • 0
    Потрясающие! Спасибо за этот совет. Сэкономил мне много времени!
2

Вы не добавляете новый <script>; вы просто передаете URL-адрес в .appendChild().

var newScript = document.createElement('script');
newScript.src = "http://forms.aweber.com/form/styled_popovers_and_lightboxes.js";
document.getElementsByTagName('head')[0].appendChild(newScript);
  • 0
    Извинения, я обновил свой вопрос фактическим кодом, который добавляет сценарий.
  • 0
    @ Кайл, хорошо. Ну, вам не нужен атрибут «тип» в любом браузере, так что это будет первое, что я попробую (хотя здесь все выглядит хорошо).
Показать ещё 1 комментарий
1

Вы должны добавить script тег, а не URL-адрес javascript в элемент head, что-то вроде этого,

var script = document.createElement('script'); //creating script element.
script.src = "http://forms.aweber.com/form/styled_popovers_and_lightboxes.js";
document.getElementsByTagName('HEAD')[0].appendChild(script);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню