Javascript: Event in iFrame
Ich Baue ein WYISWYG
editor mit einem iframe
mit designMode = 'on'
.
Das problem ist, dass ich nicht verwenden können, jedes Ereignis, auf das der iframe im Firefox und Opera (IE nicht getestet), zum Beispiel würde ich gerne verfolgen Sie die onkeyup-Ereignis:
document.getElementById("myFrame").onkeyup = function(){
doSomething...
}
Aber funktioniert nicht in das übergeordnete Fenster.
Habe ich versucht, in den iframe auch mit dieser:
top.frames[0].onkeyup = function(){
doSomething...
}
und alle Art von Sachen wie diese:
top.document.frames[0].onkeyup
top.frames["myFrame"].onkeyup
top.frames[0].document.onkeyup
Aber keiner von Ihnen will zu arbeiten, damit am Ende stellte sich heraus, dass auch window.onclick
nicht funktioniert, so jetzt bin ich ein bisschen verwirrt...
Was ist die Lösung für dieses?
BEARBEITEN
Scheint das problem zu sein, mit document.designMode = "on"
im iframe
- Ist dein iframe auf eine andere domain? Können Sie nach einer JSFiddle.net Beispiel?
- Nein, es ist nicht auf eine andere domain, hat Es eine Quelle, aber beide Dateien sind auf localhost. Wie sollte poste ich ein Beispiel, wenn es keine Möglichkeit zum hinzufügen einer anderen HTML Datei als iframe-source?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde vorschlagen, fangen die Veranstaltung auf der iframe -
Document
, und im Firefox zumindest, müssen Sie dies tun, indem SieaddEventListener()
eher alsonkeyup
. Das folgende funktioniert in allen gängigen Browsern:blur
keine Blase und kein Feuer auf dem Dokument. Es kann funktionieren, auf die das iframe-element selbst oder seine Fenster (iframe.contentWindow
).$($editor.contentWindow).blur(function () { // code goes here });
für alle Browser