2016-06-01 19 views
1

Ich habe eine viel zu primitive Frage, aber es macht mich wirklich verrückt, weil ich es nicht schaffen kann. Also, ich habe eine iframe auf einer Seite und möchte DoubleClick Event haben. Der Browser, den ich es teste, ist FireFox. Dies ist, was ich versucht habe:iframe doubleclick event funktioniert nicht

var iframe = document.getElementsByClassName("cke_wysiwyg_frame")[0]; 
var iframeDocument = iframe.contentDocument || iframe.contentWindow.document; 
iframeDocument.ondblclick = function() { 
    alert("Test 1"); 
} 

und diese:

iframeDocument.addEventListener("dblclick", function() { 
    alert("Test 2"); 
}); 

Aus irgendeinem seltsamen Grund, es funktioniert nur, wenn ich Konsole für die Fehlersuche zu öffnen. Wenn die Konsole geschlossen ist, hört sie auf zu arbeiten.

In anderen Browsern, die ich ausprobiert habe - Chrome und IE - funktioniert es überhaupt nicht. In IE zum Beispiel habe ich versucht:

iframeDocument.attachEvent("dblclick", function() { 
    alert("Test 3"); 
}); 

Aber es funktioniert nicht. Also, was ist daran falsch? Warum in FF funktioniert es mit der Konsole geöffnet, und funktioniert nicht mehr, wenn es geschlossen ist? Und wie funktioniert es in anderen Browsern? Schande über mich!

Antwort

1

Sie können das Ladeereignis des Iframes beobachten. Sobald es ausgelöst wurde, können Sie das Ereignis ondblclick dem Dokument im Iframe zuweisen.

iframeDocument.attachEvent("onload", function() { 
    this.contentWindow.document.ondblclick = function() { alert('it work\'s'); } 
}); 
+0

Wird dies funktionieren Browser anders als IE? – Jacobian

+0

Ich habe es ein wenig repariert, um andere Browser zu unterstützen, und es funktioniert, Danke, dass Sie in die richtige Richtung zeigen! – Jacobian

+0

Entschuldigung für die späte Antwort. Ich habe das nie für andere Browser als IE getestet. Kannst du die letzte Version posten, denke sie, dass sie für jemanden hilfreich sein kann. –

Verwandte Themen