有些时候,咱们可能想要禁止用户修改或者调试咱们HTML页面的代码,这个时候须要组织用户打开调试窗口,下面介绍一些可以阻止用户在浏览器中打开调试窗口的方法,这些方法只能必定程度的提升打开调试的门槛,并不能彻底杜绝。javascript
对于使用F12打开调试窗口的方法,咱们只要注册F12按键的处理方法,并阻止默认事件行为便可:html
window.onkeydown = window.onkeyup = window.onkeypress = function (event) { // 判断是否按下F12,F12键码为123 if (event.keyCode === 123) { event.preventDefault(); // 阻止默认事件行为 window.event.returnValue = false; } }
对于使用右键菜单,在右键菜单里面选择查看源代码的行为,咱们只要覆盖右键菜单点击事件的行为就便可:java
// 为右键添加自定义事件,能够禁用 window.oncontextmenu = function() { event.preventDefault(); // 阻止默认事件行为 return false; }
就算是同时禁用掉F12和右键,用户仍是能够提早打开调试窗口,而后在地址中输入网址,这样就算不用右键和F12也是打开调试窗口的。浏览器
另外用户也能够经过浏览器菜单打开开发者工具来开启调试窗口,还有诸如 shift+ctrl+i 的快捷键打开控制台。工具
对于这种预先打开调试窗口的方法,咱们能够经过比较屏幕 window.outerWidth 和页面可见内容区域 window.innerWidth 的差距判断是否打开控制台。调试
var threshold = 160; // 打开控制台的宽或高阈值 // 每秒检查一次 setInternet(function() { if (window.outerWidth - window.innerWidth > threshold || window.outerHeight - window.innerHeight > threshold) { // 若是打开控制台,则刷新页面 window.location.reload(); } }, 1e3);
这种方法对于像IE8这种,打开调试窗口是在一个新的Windows窗口中,而不是在当前页面的下面或者上面的状况会失效。code
原文地址:http://uusama.com/543.htmlhtm