2016-07-13 6 views
0

라이트 박스를 던지는 광고를 만들려고하지만 광고 자체가 iframe 내부에 배치되거나 사이트에 삽입됩니다 (같은 도메인이 아닙니다). 일부 사이트는 iframe 내부에 있고 일부는 그대로 사이트에 있습니다. 광고가 게재 될 사이트를 제어 할 수 없습니다.웹 사이트에 코드를 삽입하지 않은 삽입 광고 (비동기 광고) ​​

postMessage()을 사용하여 iframe 내에서 데이터를 보내고받은 데이터로 부모 창에서 명령을 수행 할 수 있지만 부모 창에 코드를 추가 할 수는 없습니다. 두 시나리오에서 모두 작동하는 보편적 인 솔루션이 있습니까? 일부 내용을 부모 창으로 푸시하고 싶습니다.

이 코드는 내가 요구하고 있지만, 나는 그것이 그 일을 어떻게 모르는 정확히 수행합니다

<script src="http://bs.serving-sys.com/BurstingPipe/adServer.bs?cn=rsb&c=28&pli=17085731&PluID=0&w=1&h=1&ord=[timestamp]&ucm=true&ncu=$$%c$$"></script> 
<noscript> 
<a href="%chttp%3A//bs.serving-sys.com/BurstingPipe/adServer.bs%3Fcn%3Dbrd%26FlightID%3D17085731%26Page%3D%26PluID%3D0%26Pos%3D67849382" target="_blank"><img src="%%VIEW_URL_ESC%%.http://bs.serving-sys.com/BurstingPipe/adServer.bs?cn=bsr&FlightID=17085731&Page=&PluID=0&Pos=67849382" border=0 width=1 height=1></a> 
</noscript> 

답변

2

코드는 프레임/iframe이 안에 당신은 부모 프레임에 액세스 할 수없는 경우/window 및 상위 프레임/창에 팝업 설정/라이트 박스를로드하기 위해 postMessage()을 통한 API 설정이없는 경우 대답은 '아니오'입니다.

유일한 방법은 친숙한 iFrame (부모 프레임/창과 동일한 도메인)을 사용하거나 부모 프레임/창에 액세스 할 수있는 해결 방법이있는 경우입니다. 이 작업을 수행하고 부모에게 액세스하여 변경하더라도 추가하려는 항목이 없거나 의도적으로 또는 의도하지 않게 사이트 또는 스타일 시트를 변경하려는 경우 프레임의 게시자 또는 소유자를 분노하게 할 수 있습니다 어떤 방식 으로든 악의적 인 스크립트를 삽입 할 수 있습니다. 반복해서 그렇게하면 광고를 보내는 모든 네트워크에서 금지 될 수 있습니다.

SafeFrame을 사용하는 경우이를 수행 할 수 없습니다. SafeFrame은 광고주가 확장 가능한 광고 유형이지만 SafeFrame API에 팝업이없는 경우 광고를 확장하는 API를 제공하는 최상위 창/프레임을 변경하지 못하도록 설계되었습니다.

당신은 당신이 시도 할 수 있습니다 부모/상단 프레임/윈도우에 액세스 할 수있는 경우 테스트 할 경우

상단 프레임/윈도우의 경우 :

try { window.top.location.href } catch(e) { 
    // Exception was thrown meaning you do not have access to the top window/frame! 
} 

부모를 (상단하지 않을 수 있습니다 - 거의) 프레임/창 :

try { window.parent.location.href } catch(e) { 
    // Exception was thrown meaning you do not have access to the parent window/frame! 
}