我试图阻止退格键盘事件被浏览器处理,我正在使用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;
}
}
所以我不确定下一步该做什么,我找到的每个解决方案都会产生更多问题。必须有解决这个问题的方法,否则其他文本区域(我正在构建的那种)将无法正常工作
答案 0 :(得分:1)
您无法阻止事件发生。另一种方法是使用beforeunload
专有事件,询问用户确实是否要退出页面。
$(window).bind('beforeunload', function() {
return "You want to leave the best page in the universe?";
});