我需要覆盖document.write,以便呈现从Google的doubleclick中包装该功能的广告。由于标准document.write完全取代了页面内容,因此我将其覆盖,将广告的内容附加到现有元素。但是,我想确保此覆盖只发生在广告呈现期间,并且可能在页面上的任何其他document.writes不受影响。这可以通过关闭来确定范围或完成吗?我并不十分熟悉这是如何完成的。覆盖指定范围内的document.write?
到目前为止,我有:
(function(){
function RenderAd(adURL,Element)
{
document.write = function(adContent) {
Element.append(adContent);
}
$.getScript(adURL);
}
RenderAd('http://ad.doubleclick.net/N4890/adj/za.za.home/main;pos=300top;tile=2;sid=Amazon;sz=300x250;ord=12247707435800953?',$('#HeaderDiv'));
}(document.write));
但是,当我打电话document.write('test');
之后,它依然使用我的版本文件撰写的。
您正在用自定义函数覆盖'document.write'的值。但是您不会将原始值设置回任何位置。它是否应该自动恢复? – Jon
@Jon这是范围和封闭的整个概念。它只是作为文档对象的一部分与全局函数无关。 – AesopWaits
这将是如果代码使用参数,而不是直接进入'window.document'来修改属性。 – Jon