如何使用JavaScript阻止浏览器的退格按钮的默认历史记录返回操作?

前端之家收集整理的这篇文章主要介绍了如何使用JavaScript阻止浏览器的退格按钮的默认历史记录返回操作?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
用户在浏览器上按退格键时,有没有办法阻止默认操作发生?我不需要阻止用户离开,只需要进行默认的退格操作.我需要退格键做一些不同的事情(这是一场游戏).

我尝试没有成功:

window.addEventListener('keydown',function(e) {
    if (e.keyCode === Game.Key.BACK_SPACE)
    {
        e.preventDefault();
        e.stopPropagation();
        return false;
    }
},false);

如果我在if内部发出警报,则会显示退格键按下警报.所以,keyCode是正确的.

编辑:这必须适用于Opera 10.6,Firefox 4,Chrome 6,IE 9和Safari 5.

解决方法

您不需要返回false或e.stopPropagation();在使用addEventListener附加的侦听器中,两者都不会有任何区别.您的代码在Opera中不起作用,Opera只允许您禁止按键事件中的默认浏览器行为,或者IE< = 8,它不支持addEventListener.以下内容适用于所有浏览器,只要您尚未在文档上安装keydown和keypress事件处理程序即可. 编辑:它现在还过滤掉源自< input>的事件.或< textarea>元件:
function suppressBackspace(evt) {
    evt = evt || window.event;
    var target = evt.target || evt.srcElement;

    if (evt.keyCode == 8 && !/input|textarea/i.test(target.nodeName)) {
        return false;
    }
}

document.onkeydown = suppressBackspace;
document.onkeypress = suppressBackspace;

猜你在找的JavaScript相关文章