ボタン要素が横にある入力ボックスでEnterキーを押したとき(フォーム要素にない場合)のIEの動作を「機能検出」しようとしています。
入力がフォーカスされているときにEnterキーを押したときに、次のボタンでクリックイベントを発生させる人がいないため、IEの動作を言っています。
最初のawnserがIEがこのように動作する理由を説明する関連質問: IEのバグトリガーが2つのボタンのクリックをトリガーしますか?
JS-jQuery.Eventと.triggerを介してキー押下をシミュレートしようとするフィドル:http: //jsfiddle.net/DbVrn/
IEでのjs-fiddleの動作:
- ページを開くと、入力にフォーカスが移り、Enterキーの押下をシミュレートしようとします。
- シミュレートされたエンターキーは何もしないため、入力はフォーカスされたまま赤のままです。
- 入力がフォーカスされているときに手動でEnterキーを押すと、ボタンがフォーカスされて緑色になります。
この機能を検出するための現在の試みで私が抱えている問題は、次のとおりです。
$("input").trigger(jQuery.Event("keypress", { which: 13 }));
実際には、入力がフォーカスされているときに手動でEnterキーを押すのと同じことはしません。
この動作のテストを可能にするために、Enterキーを正常にシミュレートするにはどうすればよいですか?または、この動作をテストする別の方法はありますか?
編集:これをjavascriptでテストする必要があり、テストはバージョン8から10までのIEで機能する必要があることをより明確に示すようにタイトルを更新しました。他の誰かがこれをテストする方法を提供できない限り、私はユーザーエージェントスニッフィングを使用してブラウザがIEであるかどうかを確認し、それに基づいてコードパスを選択します。