1、回退后,产生一个前进事件。
这种方式,不算是一个满意的解决方式。因为用户能体验到,界面的后退,前进。体验不好。
javascript:window.history.forward(1);
![](https://img.haomeiwen.com/i2632090/142f8742ff35bcc2.png)
这种做法,没有办法消除鼠标的误操作
//处理键盘事件 禁止后退键(Backspace)密码或单行、多行文本框除外 functionbanBackSpace(e){varev = e || window.event;//获取event对象 varobj = ev.target || ev.srcElement;//获取事件源 vart = obj.type || obj.getAttribute('type');//获取事件源类型 //获取作为判断条件的事件类型 varvReadOnly = obj.getAttribute('readonly');varvEnabled = obj.getAttribute('enabled');//处理null值情况 vReadOnly = (vReadOnly ==null) ?false: vReadOnly; vEnabled = (vEnabled ==null) ?true: vEnabled;//当敲Backspace键时,事件源类型为密码或单行、多行文本的, //并且readonly属性为true或enabled属性为false的,则退格键失效 varflag1=(ev.keyCode ==8&& (t=="password"|| t=="text"|| t=="textarea") && (vReadOnly==true|| vEnabled!=true))?true:false;//当敲Backspace键时,事件源类型非密码或单行、多行文本的,则退格键失效 varflag2=(ev.keyCode ==8&& t !="password"&& t !="text"&& t !="textarea") ?true:false;//判断 if(flag2){returnfalse; }if(flag1){returnfalse; } }//禁止后退键 作用于Firefox、Opera document.onkeypress=banBackSpace;//禁止后退键 作用于IE、Chrome document.onkeydown=banBackSpace;
![](https://img.haomeiwen.com/i2632090/fa860b5c93206da0.png)
也是查找了好多资料才找到的,这种方式,可以消除 后退的所有动作。包括 键盘、鼠标手势等产生的后退动作。
//防止页面后退history.pushState(null,null, document.URL); window.addEventListener('popstate',function(){history.pushState(null,null, document.URL); });
![](https://img.haomeiwen.com/i2632090/e7eae0de7ad9f50f.png)
现在,我们项目中就使用了第三种方式。在常用浏览器中,都可以禁用了后退。
网友评论