-1

使ってます

$(document).keydown(function (event) {
  alert(event.keyCode);
});

この機能は、ページが読み込まれたときにうまく機能します。ページのいずれかの部分をクリックしてから、いずれかのキーを押しても、このイベントは発生せず、アラートは発生しません。

なんで?

4

1 に答える 1

2

jsfiddle.net/5cyqC/3ここをクリックして、他の場所のサーバーエラーまたはをクリックしてください...そして、を参照してください。

iframeのコンテンツにフォーカスを設定しています。

これは別のドキュメントであり、イベントが親ドキュメントにバブルアウトすることはありません。

そこからイベントをキャプチャする場合は、フレームにロードされたドキュメントにイベントハンドラーをバインドする必要があります。

同一生成元ポリシーが適用されます。

同じオリジンポリシーが通常の通信をブロックする場合のiframe間の通信に関する質問については、この質問を参照してください。

これは重大なセキュリティ上の欠陥となるため、片側からのみ回避する方法はないことに注意してください。(たとえば、誰かが銀行のWebサイトをフレームに入れてから、銀行のフォームでキー押下イベントをリッスンしてパスワードを盗むことができます。)

于 2012-11-07T13:16:45.123 に答える