Google의 doubleclick에서 해당 함수로 래핑 된 광고를 렌더링하려면 document.write를 재정의해야합니다. 표준 document.write는 페이지 내용을 완전히 대체하기 때문에 광고 내용을 기존 요소에 추가하기 위해 document.write가 페이지 내용을 완전히 대체합니다. 그러나이 오버라이드는 광고 렌더링 중에 만 발생하며 페이지에있을 수있는 다른 모든 문서. 파일에는 영향을 미치지 않습니다. 이것이 폐쇄를 통해 범위를 지정하거나 완수 할 수 있습니까? 나는 그 일이 어떻게 이루어지는 지 잘 모른다.지정된 범위 내에서 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를 내 버전을 사용하고 있습니다.
'document.write'의 값을 커스텀 함수로 덮어 쓰고 있습니다. 그러나 원래 값을 어디에도 다시 설정하지 않습니다. 자동으로 되돌려 야합니까? – Jon
@ 존 이것은 범위와 종결의 전체 개념입니다. 문서 객체의 일부로 전역 함수로는 작동하지 않습니다. – AesopWaits
코드가 속성을 수정하기 위해'window.document'에 직접 도달하는 대신에 인수를 사용하면됩니다. – Jon