2014-05-01 29 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