Javascript und denselben Ursprung iframes
Ist es möglich, zu Lesen/Bearbeiten iframe-Inhalte(nicht nur Eigenschaften wie src) mit Skripts auf der Seite, aber außerhalb dieses Rahmens? Ich weiß, das ist unmöglich, wenn Quelle ist vom anderen Website, wie es wäre eine große serurity Loch, aber ich nur Fragen, ob es funktioniert für andere Inhalte aus dem gleichen Ursprung.
- Ich denke dieser link sagt alles Scripting-Iframes - Tutorial und Beispiele
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hinzufügen, was bereits gesagt wurde über die Interaktion mit den iframes geladen, aus der gleichen Domäne:
Browser ermöglichen Ihnen die Interaktion mit iframes (oder frames), solange die Seite, die versucht zu tun, die Interaktion und die Seite, die Sie geladen haben, haben Sie das gleiche Dokument.domain.
Können Sie legen Sie das Dokument ein.Domäne suffix des Hosts, auf dem Sie geladen wurden. wenn Sie z.B. eine Seite geladen blog.fred.com und es will, zu interagieren mit einigen service genannt jsonservice.fred.com beide Seiten haben zu tun
bevor javascript aus wird man in der Lage sein, um die Interaktion mit den anderen.
Browser sind schlau genug, nicht zu erlauben, Sie zu legen Sie Ihr Dokument ein.domain zu".com', falls Sie sich Wundern...
Ja, Sie können dies tun, wenn die Lage des iframe und parent-Seite auf dem gleichen host (same-origin-policy).
Um sicherzustellen das der browser lassen Sie dies tun, können Sie
auf der übergeordneten Seite und in den iframe. (beachten Sie, dass subdomain.example.com und example.com anders sind)
Dom-Methode, dies zu tun (übergeordnete Seite zu iframe):
document.getElementById("myiframe").contentWindow.someFunctionInsideIframe();
contentWindow ist die Antwort und funktioniert in den meisten, wenn nicht alle modernen Browser, sicherlich chrome, ie7+, etc.
In die andere Richtung gehen (iframe an parent-Seite):
wenn der iframe-Inhalt ist aus der gleichen Domäne, die Sie zugreifen können, indem
frames.myiframe.getElement...
Browser nur beschränkt den Zugriff auf iframe/übergeordnete Inhalte für Inhalte, die nicht aus der gleichen Domäne. Für Anfragen aus der gleichen Domäne können Sie auf Inhalte zugreifen, die über
window.parent
oder übermyiframe.document.getElementById
Dies ist nicht gerade eine client-side - /javascript-Lösung, aber es hat mir geholfen, das Problem zu beheben.
Müssen Sie entfernen den
X-Frame-Options
header, falls vorhanden, und stattdessen senden Sie die folgende eine für die iframe-Seite:und zusätzliche eine für IE: