2014-02-15 31 views
0

失敗我最近增加了一個第三方JavaScript庫來我的網站,以管理電子郵件訂閱:追加<script>標籤<head>在Chrome

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

這個JavaScript文件包含一個行加載另一個javascript文件以風格,畫面上顯示的頁面上的酥料餅:

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

爲什麼會鉻(只)是無法加載這個腳本?

+1

我發現它真的很難相信你的代碼實際上在Firefox或任何瀏覽器中工作。它可能不會導致錯誤,但我不明白腳本將如何真正加載。 – Pointy

+0

對不起,我犯了一個懶惰的錯誤,應該只是複製/粘貼。我更新了代碼片段以反映腳本調用。 Chrome瀏覽器仍然無法加載我的腳本,儘管所有其他瀏覽器都完成了請求 – Kyle

回答

1

此腳本阻止AdBlocker在Chrome中。如果你禁用它,它應該工作。

也許你可以在你的服務器上託管這個腳本?或者您需要通知您的用戶,他們必須禁用他們的AdBlocker才能使用本網站上的所有內容,但這可能不會讓他們開心。

+0

太棒了!謝謝你的提示。爲我節省了很多時間! – Kyle

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

道歉,我用附加腳本的實際代碼更新了我的問題。 – Kyle

+0

@凱爾哦行。那麼,你不需要任何瀏覽器中的「type」屬性,所以這將是我第一次嘗試(儘管在這裏看起來不錯)。 – Pointy

+0

@Kyle [你的腳本在這個jsfiddle的Chrome中加載得很好。](http://jsfiddle.net/TMEM7/) – Pointy

1

你必須script標籤沒有JavaScript代碼的URL追加到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);