以前はFireFox10と11でキーイベントをディスパッチしていました。最近、ブラウザをFireFox 12に更新し、ディスパッチが機能しなくなりました。
これが私が行ったことのサンプルコードです。
Firefox 11以下で実行すると、テキストボックスに文字が印刷されます。
Firefox 12で機能しないのはなぜですか?どうすれば修正できますか?代替ソリューションも適切です。
以前はFireFox10と11でキーイベントをディスパッチしていました。最近、ブラウザをFireFox 12に更新し、ディスパッチが機能しなくなりました。
これが私が行ったことのサンプルコードです。
Firefox 11以下で実行すると、テキストボックスに文字が印刷されます。
Firefox 12で機能しないのはなぜですか?どうすれば修正できますか?代替ソリューションも適切です。
ページの読み込み時に値(文字#1740)を入力ボックスに割り当ててみませんか?好き:
$('#name').val(String.fromCharCode(1740));
このjsfiddleを参照してください
キープレスイベントを観察し、「A」を入力するときに入力を置き換える空の入力で私のフィドルを確認してください...試してみてください
編集:これは他のブラウザでは動作が異なる可能性がありますが、FirefoxやChrome/Chromiumなどの最新のブラウザでは動作しています...イベントを監視するときのホルダーIEの動作が異なる場合があります
編集2:あなたが提案したようなグローバルマッピングも保持するようにフィドルリビジョン1を更新しました...小さな補足:一部のブラウザは入力されたキーコードの取得をサポートしていない可能性があるので、同様event.keyCode
にチェックしてください(jQueryはそれらを組み合わせてあなたを可能にしますキープレスクロスブラウザを簡単に観察できます)。event.which
event.which
これがBugZillaでの彼らの答えです。キーイベントのディスパッチは、セキュリティ上の理由から拒否されたようです。
initKeyEvent()は引き続き機能することに注意してください。編集者は、セキュリティと現在の仕様の不明確さの両方のために重要なイベントを拒否するだけです。
しかし、なぜ私の派遣されたイベントが信頼されていないのか、私はまだ理解できません。