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 位中没有运气(这是迄今为止我测试过的仅有的两个。)我在这里做错了什么?谢谢你的帮助。

4

2 回答 2

11

尝试使用 >

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

当然,您需要 jQuery。没有比使用经过测试且广泛使用的跨浏览器框架更好的跨浏览器解决方案了。

于 2011-04-30T23:17:50.777 回答
8

你是对的,你得到的例子已经过时了,并且包含处理 Netscape 4 的代码,这已经无关紧要了大约十年。

不要仅仅为此使用 jQuery。这并不难,如果它只是Enter您想要捕获的关键:

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