2014-05-01 30 views
0

我用下面的代碼嘗試執行廣告網絡旗幟之一的innerHTML的被稱爲執行腳本插入的innerHTML

// container is where you want the ad to be inserted 
var container = document.getElementById('sponsor_container2'); 
var w = document.write; 
document.write = function (content) { 
    container.innerHTML = content; 
    document.write = w; 
}; 
var script = document.createElement('script'); 
script.type = 'text/javascript'; 
script.async = true; 
script.src = 'http://go.adversal.com/ttj?id=2609728&size=728x90&promo_sizes=468x60,320x50,300x50,216x36'; 
document.body.appendChild(script); 

後,但是因爲種種原因,我原因,下面的消息

Resource interpreted as Script but transferred with MIME type text/html: "http://ib.adnxs.com/ttj?id=2609728&size=728x90&promo_sizes=468x60,320x50,300x50,216x36". 

沒有任何反應,上面的代碼在過去的adNetworks中一直有效,所以這就是爲什麼我這麼愚蠢的創建

這是我的廣告頁提供的腳本我

<script src="http://go.adversal.com/ttj?id=2609728&size=728x90&promo_sizes=468x60,320x50,300x50,216x36" type="text/javascript"></script> 
+0

該腳本使用document.write(),它會中斷。 – dandavis

+0

所有廣告都使用document.write,我的方法在切換到此網絡之前從未打破過它們。這是一個簡單的覆蓋,以便通常執行腳本 – user3037561

回答

0

我覺得你的問題是,你已經重新定義一個函數,已經在Javascript?文檔註釋事實:document.write()是用來寫文檔的功能,併爲你可能知道,你不能在Javascript中重新定義定義的函數。

你可能只想要document.write(w)或類似的東西。

希望我能幫上忙。

+0

我在這裏重新定義它,就像以前的網絡使用寫入函數加載他們的廣告時一樣,然後我可以將它指向我想要它寫入的確切div,並且實際上擁有它們加載。 沒有它,當你通過innerhtml發送它時,腳本根本不會被執行 – user3037561

+0

有趣的是,你試過jQuery庫嗎?這可以簡化一些事情,也可以在重新定義的函數內部以及變量'w'的定義中,document.write的語法是不正確的。據我所知,你總是需要括號,如果我錯了,請原諒我。 @ user3037561 –

+0

有沒有一個特定的Jquery庫?我只是從來沒有看到動態執行腳本標記可能非常困難lol – user3037561