博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js 禁用后退、退格键,屏蔽F5、右键
阅读量:5994 次
发布时间:2019-06-20

本文共 1638 字,大约阅读时间需要 5 分钟。

没有绝对的屏蔽,最好是js结合服务端混合用。服务端通过判断要打开的页面的参数是否第一次打开,如果不是的话就跳转到指定页面。这里只说js方法。

<script type="text/javascript">

javascript:window.history.forward(1);//禁用回退(比如:当前在B页面,点击后退会退回到A页面,那么该代码写在A页面,然后在B页面就不会回退到A了)

</script>

<script type="text/javascript">

//禁止后退键 作用于Firefox、Opera
document.οnkeypress=banBackSpace;
//禁止后退键 作用于IE、Chrome
document.οnkeydοwn=banBackSpace;
//处理键盘事件 禁止后退键(Backspace)密码或单行、多行文本框除外
function banBackSpace(e){
var ev = e || window.event;//获取event对象
var obj = ev.target || ev.srcElement;//获取事件源
var t = obj.type || obj.getAttribute('type');//获取事件源类型
//获取作为判断条件的事件类型
var vReadOnly = obj.getAttribute('readonly');
var vEnabled = obj.getAttribute('enabled');
//处理null值情况
vReadOnly = (vReadOnly == null) ? false : vReadOnly;
vEnabled = (vEnabled == null) ? true : vEnabled;
//当敲Backspace键时,事件源类型为密码或单行、多行文本的,
//并且readonly属性为true或enabled属性为false的,则退格键失效
var flag1=(ev.keyCode == 8 && (t=="password" || t=="text" || t=="textarea") && (vReadOnly==true || vEnabled!=true))?true:false;
//当敲Backspace键时,事件源类型非密码或单行、多行文本的,则退格键失效
var flag2=(ev.keyCode == 8 && t != "password" && t != "text" && t != "textarea") ?true:false;
//判断
if(flag2){
return false;
}
if(flag1){
return false;
}
}
</script>
<script type="text/javascript">
//屏蔽F5
document.onkeydown = function(e){
e = window.event || e;
var keycode = e.keyCode || e.which;
if(e.ctrlKey || e.altKey || e.shiftKey
|| keycode >= 112 && keycode <= 123){
if(window.event){// ie
try{e.keyCode = 0;}catch(e){}
e.returnValue = false;
}else{// ff
e.preventDefault();
}
}
}
//屏蔽右键
document.oncontextmenu = function(e){
return false;
}
</script>

转载于:https://www.cnblogs.com/dingmy/articles/3463514.html

你可能感兴趣的文章
IDEA 根据 DCEVM + Hotswap Agent 实现项目热部署
查看>>
【无私分享:从入门到精通ASP.NET MVC】从0开始,一起搭框架、做项目 (16)源码分享二:登录功能以及UI、数据库、仓储源码分享...
查看>>
static不实现多态
查看>>
spring Di依赖注入
查看>>
0909关于编译的看法
查看>>
超大整数相加,超过了long的范围,你要怎么做
查看>>
汉字转换成拼音
查看>>
9、【转载】Python生成器generator之next和send运行流程
查看>>
ACM-ICPC 2018 徐州赛区网络预赛
查看>>
Java学习点滴——Class和反射
查看>>
虚拟化之vmware虚拟机扩容与克隆
查看>>
Java下载文件的几种方式
查看>>
【hackerrank】Week of Code 26
查看>>
thinkphp的rbac设计到几张表
查看>>
thinkphp的switch输出
查看>>
备用DNS域名服务器
查看>>
排序算法——基数排序
查看>>
【翻译】在Ext JS 5种使用ViewControllers
查看>>
实战模拟监控MySQL服务shell脚本小结
查看>>
我在TechEd 2011上的课程讲义
查看>>