使用jQuery在多个浏览器上停止退格

时间:2010-03-13 19:12:00

标签: javascript jquery events javascript-events backspace

我试图阻止退格键盘事件被浏览器处理,我正在使用jquery库,所以我需要获取原始事件,但在某些浏览器上(至少是firefox)我在尝试时遇到错误要设置原始事件keyCode = 0,它会给出错误,说明该属性只存在一个getter。

function blockBackspace(event) {
    var altKey = event.originalEvent.altKey;
    var srcElementType = event.originalEvent.srcElement;
    if( (altKey) || ((event.keyCode == 8)  && (srcElementType != "text" && srcElementType != "textarea" && srcElementType != "password"))
        || ((event.ctrlKey) && ((event.keyCode == 78) || (event.keyCode == 82)) ) || (event.keyCode == 116) )
        {
        event.keyCode = 0;
        event.returnValue = false;
        event.originalEvent.keyCode = 0;
        event.originalEvent.returnValue = false;
        //sets process backspaceFlag to keep multiple handlers from removing text
        processBackspace = true;
    }
}

所以我不确定下一步该做什么,我找到的每个解决方案都会产生更多问题。必须有解决这个问题的方法,否则其他文本区域(我正在构建的那种)将无法正常工作

1 个答案:

答案 0 :(得分:1)

您无法阻止事件发生。另一种方法是使用beforeunload专有事件,询问用户确实是否要退出页面。

$(window).bind('beforeunload', function() {
    return "You want to leave the best page in the universe?";
});​