2016-06-01 13 views
1

私は方法があまりにも原始的な質問を持っていますが、それは私がそれを動作させることができないので、実際にはナットを駆動します。だから、私はページにiframeを持っていて、私はダブルクリックイベントを持っていたい。私がテストするブラウザはFireFoxです。iframe doubleclickイベントが動作しない

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

と、この:それだけで動作しますいくつかの奇妙な理由で

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

を、私はデバッグ用コンソールを開くとき、これは、私が試したものです。コンソールが閉じられると、コンソールは動作を停止します。

私が試した他のブラウザ - ChromeとIE - ではまったく動作しません。たとえばIEでは、私は試しました:

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

しかし、それは動作しません。それで、どうしたの?なぜFFでそれはコンソールが開いた状態で動作し、閉じたときに動作を停止しますか?それを他のブラウザでも動作させる方法は?私には恥ずべき!

答えて

1

iframeのロードイベントを監視できます。起動すると、iframe内のドキュメントにondblclickイベントを割り当てることができます。

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

IE以外のブラウザーでも動作しますか? – Jacobian

+0

他のブラウザをサポートするためにちょっと修正しました。うまくいきました。正しい方向を指してくれてありがとう! – Jacobian

+0

遅く返事を申し訳ありません。私はIE以外のブラウザでこれをテストしたことはありません。あなたは最後のバージョンを投稿できますか?それは誰かにとって有益かもしれないと思います。 –

関連する問題