2016-07-13 16 views
0

Ich versuche eine Anzeige zu erstellen, die einen Leuchtkasten wirft, aber die Anzeige selbst wird entweder in einen Iframe platziert und/oder in die Site eingefügt () nicht die gleiche Domäne). Einige Websites haben es in einem Iframe und einige nur auf der Website wie es ist. Ich habe keine Kontrolle über die Website, auf der die Anzeige platziert wird.Interstitial-Anzeigen (asynchrone Anzeigen) ohne Platzierung eines Codes auf der Website

Ich weiß, ich kann die postMessage() verwenden, um Daten aus dem Iframe zu senden und Befehle im übergeordneten Fenster mit den empfangenen Daten, aber ich kann keinen Code auf dem übergeordneten Fenster platzieren. Gibt es eine universelle Lösung, die in beiden Szenarien funktioniert? Ich möchte einige Inhalte in das Elternfenster übertragen.

Dieser Code tut genau das, was ich frage, aber ich weiß nicht, wie es es tut:

<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> 

Antwort

2

Wenn der Code innerhalb eines Rahmens/iframe, und Sie haben keinen Zugriff auf den übergeordneten Rahmen/window und der Elternrahmen/das Fenster hat keine API-Konfiguration über postMessage(), um pop-over/lightbox zu laden, dann lautet die Antwort nein.

Sie können dies nur tun, wenn ein benutzerfreundlicher iFrame (dieselbe Domäne wie das übergeordnete Frame/Fenster) verwendet wird oder eine Problemumgehung für den Zugriff auf das übergeordnete Frame/Fenster erfolgt. Beachten Sie, dass selbst wenn dies geschieht und Sie auf den übergeordneten Benutzer zugreifen und ihn ändern, den Publisher oder Besitzer der Site verärgern kann, wenn er nicht erwartet, was Sie hinzufügen möchten, oder wenn Sie absichtlich oder unabsichtlich die Site oder das Stylesheet ändern in irgendeiner Weise oder injizieren Skripte, die bösartig sein können. Wenn Sie dies wiederholt tun, können Sie auch von allen Netzwerken, durch die Ihre Anzeigen gesendet werden, gesperrt werden.

Wenn SafeFrame verwendet wird, können Sie dies nicht tun. SafeFrame verhindert, dass Werbetreibende das Fenster/Frame auf oberster Ebene ändern können. Es bietet eine API zum Erweitern der Anzeige, wenn es sich um einen erweiterbaren Anzeigentyp handelt, es jedoch kein Popover in der SafeFrame-API gibt.

Wenn Sie testen möchten, wenn Sie Zugriff auf den Parent/Top-Frame/Fenster haben, können Sie versuchen:

Für Top-Frame/Fenster:

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

Für Eltern (nicht die Spitze sein kann, -meisten) Rahmen/Fenster:

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