我需要覆蓋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