getElementsByTagName('a'); funktioniert nicht?
Also ich mache Folgendes:
var stuff = document.getElementsByTagName('iframe');
Funktioniert einwandfrei. Dann möchte ich dies tun:
var other = stuff.getElementsByTagName('a');
aber es funktioniert nicht. Es endet als nicht definiert. Kann ich tun:
var other = document.getElementsByTagName('a');
und es ist in Ordnung. Sollte ich nicht in der Lage, alle 'a' in 'iframe'?
Edit: So ich don T eigenen iframe und bin jetzt unter dem Eindruck, dass ich nicht Zugriff auf alles das iframe erzeugt, die meansI denke, ich bin geschraubt.
hast du das iframe?
Nein. Ich sah jemand eine Antwort sagen, Sie können nicht auf diese Informationen aufgrund von browser-Sicherheit, sondern Sie gelöscht. Ich denke, man kann nur den Zugriff auf die eigentliche iframe-Teil und alle Inhalte, die es erzeugt, ist off limits?
Nein. Ich sah jemand eine Antwort sagen, Sie können nicht auf diese Informationen aufgrund von browser-Sicherheit, sondern Sie gelöscht. Ich denke, man kann nur den Zugriff auf die eigentliche iframe-Teil und alle Inhalte, die es erzeugt, ist off limits?
InformationsquelleAutor townie | 2012-02-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden..
Spezifikation.
Dann rufen Sie
getElementsByTagName('a')
aufiframeDoc
. Alternativ könnten Sie den ZugriffiframeDoc.links
, das ist nicht ganz das gleiche, aber kann das sein, was Sie wollen.Natürlich, dies alles beruht auf dem Zugang zu den
iframe
'sdocument
nicht zu verletzen Same-Origin-Policy.Da
iframe.contentDocument
funktioniert nicht im IE<8 ich entscheide mich für nur mithilfe deriframe.contentWindow.document
die zuverlässig funktioniert cross-browser. Es gibt keinen Vorteil im ersten Versuch zu verwenden contentDocument - nur der code wird länger.Ja, ich dachte, vielleicht war das zweite IE-eigene Art, Geschäfte zu machen, aber der spec erwähnt. Ich werde es beheben 🙂
InformationsquelleAutor alex
getElementsByTagName()
gibt eine NodeList, die Sie benötigen zu Durchlaufen. Zu Durchlaufen, die Sie tun können:Jedoch
getElementsByTagName('a')
fragt, für Kinder innerhalb des aktuellen Dokuments, ist sicherlich nicht das, was Sie wollen. Wenn Sie möchten, dass die Kinder innerhalb des Dokuments in dem Rahmen, den Sie tun müssen:Dies funktioniert, wenn Sie mehrere iframes, und in älteren IE-Versionen.
Ganz rechts 🙂
InformationsquelleAutor Timothy Jones
erzeugen soll, ein array-artiges Objekt mit allen Verknüpfungen in der null-TEN iframe.
Müssen Sie
contentWindow.document
weil die<iframe>
enthält keine Knoten, die im aktuellen Dokument -- es ist ein Rahmen, dessencontentWindow
Eigenschaft verweist auf ein anderes Fenster mit seiner eigenen document.InformationsquelleAutor Mike Samuel
getElementsByTagName
gibt ein array von übereinstimmenden Elemente. Zum Zugriff auf ein einzelnes IFRAME verwenden, würden Siestuff[0]
zum Beispiel.InformationsquelleAutor casablanca
Warum ist jeder darauf hindeutet
contentWindow.document
wenn Sie können, verwenden Sie einfachcontentDocument
statt?Natürlich funktionieren beide, aber ich bevorzuge, was ich meine. Wenn ich die Fenster benutze ich
contentWindow
. Wenn ich das Dokument wollen, ich benutzecontentDocument
.InformationsquelleAutor Niet the Dark Absol