0

この行は Firefox では機能しません (IE と Chrome では問題なく動作します)。

ste.frame.document.onkeydown=function(e) {
    alert('a');
};

ここで、ste.frame はウィンドウ オブジェクト [object Window] です。私は試した

window.frames[0].document.onkeydown=function(e){
    alert('b');
}

また、IE と Chrome で動作し、Firefox では動作しません。2番目が機能する場合、最初のものも機能すると思います。

これを解決する方法を知っている人はいますか?前もって感謝します。

4

2 に答える 2

2

サブフレームが about:blank ドキュメントの読み込みを完了する前にリスナーを設定しているため、上記のコメントに投稿したコードは機能しません。したがって、一時ドキュメントにリスナーを設定していますが、それはその後消えます。

Gecko は、HTML5 仕様が about:blank の動作方法を実際に定義しているため、IE および WebKit で見られるものとより厳密に一致するように、ある時点で動作を変更する可能性があります。

于 2012-01-09T13:44:39.510 に答える
0

解決策を見つけるのに 1 時間近く費やしましたが、できませんでした。その理由は、Mozilla Foundation が IFrame オブジェクトの基本のみを実装しているため、イベントハンドラーを割り当てることができないためだと思います。CSS スタイルを変更できる eventhandler と比較してください (このを参照してください)。

window.frames[0].document.onkeydown=function(e){ alert('b'); }

DOM-Inspector を使用して、このコードが指しているオブジェクトを特定しました。私の目には、FirefoxのDOMのグローバルオブジェクトを指しています。

PS: 間違っている場合は、訂正してください。

于 2012-01-10T09:34:19.210 に答える