有没有办法防止用户在浏览器中按退格键时发生默认操作?
我不需要阻止用户离开,只需阻止用户执行默认的退格操作即可。我需要退格键来做一些不同的事情(这是一个游戏)。
我尝试过但没有成功:
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、Internet Explorer 9 和 Safari 5。
你不需要return false
or e.stopPropagation()
;对于附加的侦听器来说,两者都不会产生任何影响addEventListener
。您的代码在 Opera 中不起作用,它只允许您抑制默认浏览器行为keypress
事件,或者IE addEventListener。只要您还没有,以下内容应该适用于所有浏览器keydown
and keypress
事件处理程序document
.
EDIT:它现在还过滤掉源自<input>
or <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;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)