Backspace是Navigate Back To The Last Page的浏览器热键。我知道当输入有焦点时,此热键被禁用。但是我将keyup和keydown事件绑定到这个输入,我写的东西引起了这个麻烦。
你知道解决方案吗?
答案 0 :(得分:1)
当您从input元素处理事件时,在返回之前取消该事件的冒泡。
答案 1 :(得分:1)
我有类似的需求,即中和Backspace键引起的Back操作,我在这个网站上遇到了一个解决方案
http://www.webmasterworld.com/javascript/3785986.htm
我希望它会对你有所帮助。
答案 2 :(得分:0)
问题是由返回onKeyDown事件之前的输入删除引起的。
答案 3 :(得分:0)
尝试使用onKeyDown或onKeyPress
if (event.keyCode==8)//where 8 ascii code of backspace
{
retunr;
}
答案 4 :(得分:0)
您可以尝试挂钩window.onbeforeunload事件以防止此类意外导航。
答案 5 :(得分:0)
你可以做:
因此,如果你接受一个非Backspace代码,那么缓冲区的新值将是InputField值,你使用hotKeyFunction,否则InputField的新值将是缓冲区值,你得到InputField的正常工作。
答案 6 :(得分:0)
if (typeof(window.event)!='undefined')//ie
{document.onkeydown=function()
{var tag_name=event.srcElement.tagName.toUpperCase();
if (tag_name!='INPUT' && tag_name!='TEXTAREA')
{return event.keyCode!=8;
}
};
}
else //firefox, chrome
{window.addEventListener('keydown',function(evt){if (evt.keyCode==8){evt.preventDefault();}}, true);
}