跨浏览器捕获回车键,我的解决方案不起作用

Capture the enter key cross-browser, my solution isn't working

本文关键字:我的 解决方案 不起作用 回车 浏览器      更新时间:2023-09-26

我有一个我认为是跨浏览器的解决方案来捕获我正在制作的聊天脚本中的回车键,它是:

    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]。提交,这也不起作用。它在FF中工作得很好,但在IE8 64位(这是迄今为止我测试过的唯一两个)中就没有运气了。我哪里做错了?谢谢你的帮助。

尝试使用>

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

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

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

不要只为此使用jQuery。这并不难,如果它只是输入键,你想捕获:

document.onkeydown = function(e) {
    e = e || window.event;
    if (e.keyCode == 13) {
        document.getElementById("chatEnter").submit();
    }
};
相关文章: