3

私が作成しているチャットスクリプトでエンターキーをキャプチャするためのクロスブラウザーソリューションだと思ったものがあります。これは次のとおりです。

    nn=(document.layers)?true:false;
ie=(document.all)?true:false;
function keyDown(e) {
    var evt=(e)?e:(window.event)?window.event:null;
    if(evt){
        var key=(evt.charCode)?evt.charCode: ((evt.keyCode)?evt.keyCode:((evt.which)?evt.which:0));
        if(key=="13") document.getElementById('chatEnter').submit();
        }
    }
document.onkeydown=keyDown;
if(nn) document.captureEvents(Event.KEYDOWN);

他の方から頂いたものなので、古いものでしょうか?とにかく、フォームの id 属性は、ご覧のとおり chatEnter です。document.forms[0].submit も使用してみましたが、どちらも機能しませんでした。FF では問題なく動作しますが、IE8 64 ビットではうまくいきません (これまでにテストしたのは 2 つだけです)。助けてくれてありがとう。

4

2 に答える 2

11

使ってみてください >

$(document).keypress(function(e) {
    if (e.which == "13") { 
        //enter pressed 
    }       
});

もちろん、それにはjQueryが必要です。テスト済みで広く使用されているクロス ブラウザ フレームワークを使用するよりも優れたクロス ブラウザ ソリューションはありません。

于 2011-04-30T23:17:50.777 に答える
8

正解です。取得した例は非常に古く、Netscape4を処理するためのコードが含まれています。Netscape4は約10年間無関係です。

このためだけにjQueryを使用しないでください。Enterキャプチャしたいキーだけであれば、難しくはありません。

document.onkeydown = function(e) {
    e = e || window.event;
    if (e.keyCode == 13) {
        document.getElementById("chatEnter").submit();
    }
};
于 2011-05-01T11:11:02.487 に答える