私は正常に動作する次のコードを持っています:
// click on the button
$(".btnHeaderSearch").click(function(event)
{
event.preventDefault();
window.open('/search.aspx?phrase=' + $('.txtHeaderSearch').val());
});
新しいウィンドウ/タブでsearch.aspxが開き、ウィンドウ/タブにフォーカスがあるか、他のすべてのウィンドウ/タブの前に表示されます。
ただし、次のコードは機能しません。
// press enter key when textbox has focus to simulate button click:
$('.txtHeaderSearch').bind('keyup', function(e) {
if ( e.keyCode === 13 ) { // 13 is enter key
window.open('/search.aspx?phrase=' + $('.txtHeaderSearch').val());
}
});
ここで何が起こるかというと、ウィンドウ/タブは開きますが、他のすべてのウィンドウの後ろにウィンドウが開くか、タブフォーカスを与えずにタブが開くため、元のページのままになります。
エンターキーを押して、上のボタンクリックと同じように動作するウィンドウ/タブを開くにはどうすればよいですか?つまり、コードの両方のビットで、現在のクリックと同じように即座にフォーカスがあるウィンドウまたはタブを開く必要があります。
IE8でこの動作が発生します。Google Chromeで正常に動作し、他のブラウザでは試していません。残念ながら、IE8でこれを機能させる必要があります。