js禁用网页的后退功能

2018-08-23  本文已影响0人  茶饭不思

1、回退后,产生一个前进事件。

这种方式,不算是一个满意的解决方式。因为用户能体验到,界面的后退,前进。体验不好。

javascript:window.history.forward(1);

2、禁用键盘的backspace键

这种做法,没有办法消除鼠标的误操作

//处理键盘事件 禁止后退键(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;

3、终极方案:

也是查找了好多资料才找到的,这种方式,可以消除 后退的所有动作。包括 键盘、鼠标手势等产生的后退动作。

//防止页面后退history.pushState(null,null, document.URL);        window.addEventListener('popstate',function(){history.pushState(null,null, document.URL);        });

现在,我们项目中就使用了第三种方式。在常用浏览器中,都可以禁用了后退。

上一篇 下一篇

猜你喜欢

热点阅读