JavaScript - Dynamisch Größenänderung iframe cross-domain mit URL-fragment

Habe ich gefunden,Technik, die Dokumente der cross-domain-Kommunikation mit iframes, und ich beschloss, dass ich versuchen würde, dies zu nutzen, zu erreichen erhabene Ziel, immer ein iframe Größe automatisch, wenn sich der Inhalt ändert.

Grundsätzlich, hier mein plan (ich weiß, es ist ein bisschen hacky).

  • Ich habe die Kontrolle über sowohl die übergeordnete Seite und der untergeordneten Seite, aber Sie sind geladen werden sollen, auf unterschiedlichen domains (und in der Tat, man wird von http und das andere https).

  • Innerhalb des iframe, ich habe eine Funktion, die ausgeführt werden, wenn das Dokument geladen wird, und dann in regelmäßigen Abständen, um das Dokument in der Höhe, und festgelegt, dass als Wert des URL-fragment (dh so etwas wie https://blahblah.com/#h-768)

  • In das übergeordnete Fenster, ich habe eine Funktion, der Sie in regelmäßigen Abständen überprüfen Sie die URL des iframe greifen Sie den hash-tag", analysiert die Höhe, und ändern Sie den iframe-Höhe entsprechend.

Der große Haken ist: der iframe nicht über eine ID oder ein name zugeordnet, und kann ich wohl nicht ändern.

In der Realität, der iframe ist zunächst zu auf der gleichen domain. Es werde Dokuments verwenden.schreiben Sie zum erstellen der iframe-polling-Funktion in das übergeordnete Fenster (weil ich eigentlich gelogen, vorhin, als ich sagte, ich hatte die Kontrolle über die übergeordnete Seite), und dann wird Sie navigieren Sie zu der Seite, die ich bin wirklich interessiert.

So, die eigentliche Frage ist, wie kann ein iframe geben, sich selbst einen Namen oder eine ID?

Ich habe versucht, Dinge wie diese (mit jQuery):

$(document).ready(function() {
        //Try changing the name            
        $(self).attr("name", "myframe");
        $(self).attr("id", "myframe");      
});

Problem ist, es scheint nicht zu funktionieren.

Irgendwelche Gedanken?

KLÄRUNG

Der übergeordneten Seite wird so etwas wie http://mysite.com, und das iframe wird zunächst werden http://mysite.com/iframe.

Dass die ersten iframe-Seite ist nur eine dummy-Seite, dass:

  • Gibt dem <iframe> - element auf der parent-Seite eine ID
  • Erstellt eine neue <script> - element auf der parent-Seite, die die Größe polling, und dann
  • Hat window.location = "http://my-real-app-location.com"

Die neue Seite wird sich aktualisieren der URL-fragment mit der aktuellen Höhe, so dass die URL des iframe-so etwas wie http://my-real-app-location.com/#h-800 (was bedeutet, dass das Dokument 800 Pixel hoch).

Dem Skript, dass die dummy-Seite erstellt, auf der übergeordneten Seite braucht, um zu greifen, das URL-fragment und ändern Sie den iframe-Höhe entsprechend.

  • gehst du laufen, das JS auf das übergeordnete Fenster? Oder innerhalb der tatsächlichen iframe?
  • Das JavaScript wird ausgeführt, der im Rahmen der übergeordneten Seite, richtig?
  • Gut, das Ziel zu laufen, dass snippets von JavaScript in iframe, so dass auf der übergeordneten Seite kann ich dynamisch eine Funktion erstellen (mit Elternteil.Dokument.schreiben oder etwas wie das), die sich auf Fenster.frames["myframe"]
InformationsquelleAutor Ryan | 2011-04-18
Schreibe einen Kommentar