Es ist kinderleicht zu erkennen, ob diese Seite innerhalb eines domainübergreifenden Iframes liegt

Antwort auf "Narrensichere Weg, um zu erkennen, ob der iframe cross domain" beschreibt eine Methode, um zu testen, ob ein iframe auf einer Seite Punkte zu einem gleichen-domain-oder cross-domain-Seite, arbeiten rund um die verschiedenen Browser' Interpretationen der cross-domain policy und die Vermeidung von Fehlermeldungen, die zu einer Unterbrechung eines Benutzers oder halt javascript.

Ich bin auf der Suche nach dem äquivalent dieser aber von das Kind Seite innerhalb des iframe testen, ob es innen eine cross-domain-iframe oder nicht.

Ist es möglich, Zugang (gleiche domain) info über die Eltern mit der parent global z.B. parent.document.locationaber es ist ein zuverlässigen Weg dies zu tun ist cross-browser, ohne abzustürzen in Fehlerwenn es erkennt, dass der andere Elternteil ist cross-domain?


Für die praktische Prüfung, hier ein jsbin innerhalb einer jsfiddle , stürzt in einen Fehler, wenn Sie versuchen zu testen, ob parent.location.host zugänglich ist. Gibt es einen zuverlässigen Weg, um etwas Verwertbares wie false sagt uns, dass dies ist ein cross-domain-Eltern, statt einen Fehler?

Gibt es eine try...catch Variante, die robust cross-browser? Oder vielleicht einige clevere trick mit einem return-Wert von parent.postMessage()? (obwohl die übergeordnete Seite kann nicht bearbeitet werden)


Use case: stellen Sie sich vor embedable Inhalte eingebettet werden, die auf Seiten auf Ihrer eigenen Website und von Dritten. Wenn die Seite auf der selben domain, iframe, wir verstecken branding und links zurück auf den ursprünglichen Standort, da der Benutzer bereits hier. Wenn Sie den Zugriff auf die Seite von einem 3rd-party-iframe, oder laden Sie die Seite direkt, zeigen wir das branding und die credits, so dass Sie sehen können, die Quelle der Inhalte.


Klären, ich weiß über die gleiche domain policy, und ich don ' T care was die cross-browser-Domäne ist, ich bin gerade auf der Suche, um zu schreiben eine einfache, aber zuverlässige if Zustand wie if( crossDomainParent() ){ /* do something */}

InformationsquelleAutor der Frage user568458 | 2014-02-13

Schreibe einen Kommentar