在Chrome </script>中将<script>标记附加到<head>失败

时间:2014-02-15 15:24:47

标签: javascript html google-chrome

我最近在我的网站上添加了第三方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中脚本无法加载:

enter image description here

然而,我可以在new tab中加载相同的脚本。当我调试网络请求时,我可以收集的唯一信息是没有响应:

enter image description here

为什么Chrome(仅)无法加载此脚本?

3 个答案:

答案 0 :(得分:2)

您没有添加新的<script>标记;您只是将网址传递给.appendChild()

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

答案 1 :(得分:1)

您必须将script标记不是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);

答案 2 :(得分:1)

此脚本已被Chrome中的AdBlocker阻止。如果你禁用它,它应该可以工作。

也许您可以在服务器上托管此脚本?或者您需要通知您的用户他们必须禁用他们的AdBlocker使用此网站上的所有内容,但这可能不会让他们满意。