禁用浏览器调试工具

在某些情况我们可能会需要禁止用户打开浏览器的调试面板来对页面做一些简单的安全保护,以下是我整理的一些方法:

一、禁止选中

禁止选中主要是防止用户复制文字和图片,样式中禁用即可:

/*禁止选中*/ 
body{ 
    -moz-user-select: none; /*火狐*/ 
    -webkit-user-select: none; /*webkit浏览器*/ 
    -ms-user-select: none; /*IE10*/ 
    -khtml-user-select: none; /*早期浏览器*/ 
    user-select: none; 
}

如果只是禁止部分区域的话,直接在标签上加上onselectstart=“return false”

<div onselectstart="return false">
	此区域禁止复制
</div>

或者

<div onselectstart="return false" id="copy" >
	此区域禁止复制
</div>

<script type="text/javascript" >
$(document).ready(function(){
    document.getElementById('copy').onselectstart =function(){  //禁止选中
        return false;
    };
});
</script>

二、禁用F12

对于使用F12打开调试窗口的方法,我们只要注册F12按键的处理方法,并阻止默认事件行为即可:

window.onkeydown = window.onkeyup = window.onkeypress = function (event) {
	// 判断是否按下F12,F12键码为123
	if (event.keyCode === 123) {
		event.preventDefault(); // 阻止默认事件行为
        window.event.returnValue = false;
	}
}

三、禁用鼠标右键

对于使用右键菜单,在右键菜单里面选择查看源代码的行为,只要覆盖右键菜单点击事件的行为就即可:

// 为右键添加自定义事件,可以禁用
window.oncontextmenu = function() {
	event.preventDefault(); // 阻止默认事件行为
    return false;
}

四、禁用预先调试

另外用户也可以通过浏览器菜单打开开发者工具来开启调试窗口,还有诸如 shift+ctrl+i 的快捷键打开控制台。这种情况咱们就每秒检查一次控制台是否打开,如果打开就让他走。

var threshold = 160; // 打开控制台的宽或高阈值
// 每秒检查一次
setInterval(function() {
	if (window.outerWidth - window.innerWidth > threshold || 
	window.outerHeight - window.innerHeight > threshold) {
		// 如果打开控制台,则关闭控制台
		window.close();  
        window.location = "about:blank";  
	}
}, 1e3);

这种方法对于像IE8这种,打开调试窗口是在一个新的Windows窗口中,而不是在当前页面的下面或者上面的情况会失效。

到这已经可以阻止一大部分人了,但是如果别人想看你的代码的欲望比较强,那咱也拦不住。

也就是如果调试窗口是在新的窗口那此代码就不能阻止到他,就算排除这种情况也还可以在浏览器设置中禁用Javascript再打开调试,不过对于一般情况已经完全够用。
————————————————
版权声明:本文为CSDN博主「Abby Zhang」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/bigzhangmin/article/details/105724573

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值