0

我试图阻止keydown浏览器处理退格事件,我使用的是 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;
    }
}

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

4

1 回答 1

1

你无法阻止事件的发生。一种替代方法是使用beforeunload专有事件来询问用户是否真的想退出页面。

$(window).bind('beforeunload', function() {
    return "You want to leave the best page in the universe?";
});​
于 2010-03-13T22:38:10.227 回答