Недавно я добавил на свой сайт стороннюю библиотеку 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 он не загружается:
Тем не менее я могу загрузить тот же скрипт на новой вкладке. Когда я отлаживаю сетевой запрос, единственная информация, которую я могу собрать, заключается в том, что ответа не было:
Почему Chrome (только) не сможет загрузить этот скрипт?
Этот скрипт заблокирован AdBlocker в Chrome. Если вы отключите его, он должен работать.
Может быть, вы могли бы разместить этот скрипт на своем сервере? Или вам нужно будет уведомить своих пользователей о том, что они должны отключить их AdBlocker, чтобы использовать все на этом сайте, но это, вероятно, не сделает их счастливыми.
Вы не добавляете новый <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);
Вы должны добавить 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);