php 怎么关闭f12,禁用F12浏览器开发者工具的几种方法

当不想让自己的代码被调试时,需要禁用F12功能。

整理了以下几种方法:

经测验,第一种方法和第二种方法结合使用最优。

1.打开调试时跳转页面。(缺点:火狐及QQ浏览器不生效。)

//debug调试时跳转页面

var element = new Image();

Object.defineProperty(element,'id',{get:function(){window.location.href="https://www.baidu.com"}});

console.log(element);

2.无限debugger(暂未发现缺点。)

setInterval(function() {

check();

}, 2000);

var check = function() {

function doCheck(a) {

if (('' + a / a)['length'] !== 1 || a % 20 === 0) {

(function() {}['constructor']('debugger')());

} else {

(function() {}['constructor']('debugger')());

}

doCheck(++a);

}

try {

doCheck(0);

} catch (err) {}

};

check();

3.devtools-detect

https://github.com/sindresorhus/devtools-detect

缺点:原理为检验窗口大小是否正常。

浏览器开启手机模式或者F12开启全屏模式均检测不到

4.最笨的办法(缺点:先打开F12后访问页面无法禁用。右击点检查无法禁用。)

window.οnlοad=function(){

document.οnkeydοwn=function(){

var e=window.event||arguments[0];

if(e.keyCode==123){

window.location.href="https://www.baidu.com"

}else if((e.ctrlKey)&&(e.shiftKey)&&(e.keyCode==73)){

window.location.href="https://www.baidu.com"

}

};

}

5.计算debugger的时间差(缺点:关闭debugger就无法检测了)

function consoleOpenCallback() {

alert("CONSOLE OPEN");

}

!function () {

const handler = setInterval(() => {

const before = new Date();

debugger;

const after = new Date();

const cost = after.getTime() - before.getTime();

if (cost > 100) {

consoleOpenCallback();

clearInterval(handler)

}

}, 1000)

}();

综上所述,第一种第二种方法结合使用能有效禁用开发者工具。

转载:来源

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值