9

iframe に keydown イベント ハンドラーを割り当てたい。純粋な JS に似たもの:

document.getElementById('iframe_id').contentWindow.addEventListener('keydown',funcName, true);

私は試した:

$(document.getElementById('iframe_id').contentWindow).keydown( function() {
   // my func
});

しかし、それは動作しません..助けてください!

4

4 に答える 4

15

contentWindowのオブジェクトですiframe。代わりに'swindowが必要です。iframedocument

$(document.getElementById('iframe_id').contentWindow.document).keydown(function() {
    // my func
});

jQuery が他のウィンドウ/フレームの要素にどのように反応するかはわかりません。

于 2009-02-15T03:22:28.967 に答える
4

iframe コンテンツがクロスドメインである場合、私が理解している限り、これは決して機能しません。最終的にアクセス許可エラーが発生します: Permission denied for http://... to get property HTMLDocument.nodeType from http://...。ブラウザーは、親子の dom 権限を同じドメインに制限します。

于 2010-04-08T19:19:16.773 に答える
0

$ 関数は、document.getElementById の必要性を置き換えます

$('iframe_id').contentDocument.keydown(function() {
   // logic
});
于 2009-02-14T19:40:53.757 に答える