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?

War es hilfreich?

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";
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top