2011-01-07 17 views
2

Ich möchte Körperelement 'tinymce' erhalten, die in Iframes positioniert, wie der Baum unten ..das Element erhalten innerhalb von iframe

html -> Körper -> div # wpwrap -> div # wpcontent -> div # wp-content -> div # wrap -> form # post -> div # editorcondainer -> div # poststuff -> div # post-body -> div # post-body-inhalt -> div # postdivrich ->div # editiorcontainer ->Spanne # content_parent -> Tabelle # content_tbl.mceLayout -> tbody -> tr -> td.mceIframeContainer.mceFirst.mceLast ->iframe # content_ifr -> html ->body # tinymce.mceContentBody

für die ich verwendet den Code:

var iframeEl = document.getElementById('content_ifr'); 
alert(iframeEl); 

if (iframeEl.contentDocument) { // DOM 

    var bdy = iframeEl.contentDocument.getElementById('tinymce'); 

} else if (iframeEl.contentWindow) { // IE win 

    var bdy = iframeEl.contentWindow.document.getElementById('tinymce'); 

} 

Aber iframeE1 ist null :(

Im anderen ids im Baum versucht, aber es stoppen Elemente aus der Rückkehr 'span id: content_parent', die letzte id Objekt Rückkehr ist 'div id: editorcontainer'

Wie konnte ich die Elemente nach bekommen 'span id: content_parent'

Antwort

2

Versuchen document.getElementById('content_ifr'); Der obige Code fürsieht(da Sie niemals eine Variable namens content_ifr definieren).

+0

Ich versuchte auf diese Weise auch .. Aber immer noch seine Rückkehr Null. Also iframeEl ist null und Ausführung von weiteren macht Fehler .... :( – DarRay

+0

Wenn es null zurückgibt, dann gibt es kein Element mit dieser ID im aktuellen Dokument. Überprüfen Sie auch die JavaScript-Fehler Konsole; vielleicht gibt es einen anderen Fehler. –

+0

Im versuchen andere Ids in der Struktur, aber es stoppen Elemente aus der 'span id: content_parent', die letzte ID zurückgeben Objekt ist 'div id: editorcontainer' Wie könnte ich die Elemente nach 'span id: content_parent' – DarRay

0

Die erstellt einen neuen Fensterkontext mit einem neuen Dokument. So geben die ein Name wie name="somename" Attribut, so können Sie es wie folgt zugreifen:

window.somename.document.getElementById('tinymce') 

Wenn Sie keinen Zugriff auf den HTML haben Sie zuerst den Namen über JS wie diese könnte hinzufügen:

document.getElementById('tinymce').setAttribute('name','somename'); 

Einige graben auf SO brachte dies: accessing a form that is in an iframe was erklärt, wie dies mit nur einer ID zu tun. Das sollte die Möglichkeiten zusammenfassen.

+0