Zugang Eltern DOM aus Skript in einem Iframe in IE Mobile
-
05-07-2019 - |
Frage
Ich habe ein gerahmte Fenster (derzeit iframe aber möglicherweise Rahmen sein) - Ich habe keine Kontrolle über diese.
Ich möchte feststellen, ob mein Inhalt in einem Iframe (oder Rahmen) ist.
Ich wollte die Position des aktuellen Dokuments mit dem einen der Top-Objekt hält vergleichen, aber es scheint es das gleiche Objekt (oben === Fenster).
Nach umfangreichen googeln ich auf diese IEMobile Blog-Eintrag und in einer der Kommentare gibt es diese Antwort:
iemoblog sagte:
Nein, können Sie keinen Teil des Zugangs Eltern DOM aus Skript in einem Iframe in IE Mobile.
20. Dezember 2007 12.12 Uhr
Ich kann keine Dokumentation darüber zu finden scheinen - kann jemand helfen, dieses oder sogar besser bestätigen - deuten auf eine Art und Weise zu erkennen, ob die Seite „eingerahmt“ ist?
Lösung 2
Da ich nicht überall bekommen, nachdem der Kommentar links in der IE mobile Blog (von Charles Morris - Programm-Managern auf dem IE mobile-Team, auf seinem eigenen Beitrag) bin ich gezwungen, diese Antwort hinzufügen und angeben, es ist:
Wie entwickelt (oder ein Fehler mindestens)
PRC sagte :
über iframe Unterstützung: Ich kann ein iframe erstellen, aber ich bin nicht in der Lage zu „Look außen“ den Rahmen. „Top“ und „Eltern“ scheinen beide nur beziehen sich auf die iframe selbst und nicht die oberste Vorfahren oder unmittelbare Vorfahren wie die Dokumentation schlägt vor, dass es sein sollte. Gibt es eine Möglichkeit, um Javascript zu verweisen Variablen in dem umschließenden Dokument aus einem Iframe?
19. Dezember 2007 09.29 Uhr
iemoblog sagte :
Nein, können Sie keinen Teil des Zugangs Eltern DOM aus Skript in einem Iframe in IE Mobile.
20. Dezember 2007 12.12 Uhr PM
Andere Tipps
Das Hauptproblem ist, dass, wenn der Rahmen aus einer anderen Domäne ist dann der Behälter dann JavaScript Sandbox und kann den anderen Rahmen / Behälter nicht zugreifen kann.
Was Sie tun können, ist versuchen, window
zu vergleichen, um zu window.top
und die möglichen Ergebnisse sind:
1. Die gleich sind -> Sie sind das oberste Fenster auf der Seite
2. Sie sind nicht gleich -> Sie sind nicht das oberste Fenster auf der Seite gibt es einige Container-Seite, in der gleichen Domäne wie Sie, dass Ihre Fenster als Rahmen oder iframe hält.
3. Eine Sicherheitsausnahme ausgelöst wird -> Sie sind nicht das oberste Fenster auf der Seite, aber das obere Fenster aus einer anderen Domäne ist, und Sie können nicht darauf zugreifen
vielleicht so etwas wie folgt aus:
try {
if (window == window.top)
return "I'm parent";
else
return "I'm a child of " + window.top.location;
} catch (e) {
return "I'm a child of something from another domain";
}