前端如何在不引入库的情况下判断用户打开了 F12 控制台

241 天前
 TaoLoading

有个需求需要在不引入库的情况下判断用户打开了 F12 控制台,而且要做到多浏览器兼容,大佬们有合适的办法吗

2851 次点击
所在节点    前端开发
28 条回复
gorira
241 天前
联合十部委出台相关规定,使用控制台查看本站信息违反网络安全法
Chad0000
241 天前
玩这种黑魔法没意思,双输。
JK9993
241 天前
复制一下源码?
TaoLoading
241 天前
@Chad0000 不是呀,我在做浏览器插件开发,期望当检测到用户开启开发者控制台并选择移动端样式后隐藏我的插件,也是优化用户体验
zcf0508
241 天前
@TaoLoading 那你直接移动端样式兼容就好了,为啥要判断是不是开了控制台
TaoLoading
241 天前
@zcf0508 因为这个插件是全平台兼容的,也有移动端
estk
241 天前
淘宝的 f12 是招聘内容
Track13
241 天前
不用第三方库你不还是要自己写,有什么区别?
agagega
241 天前
以前在本站看到过一个人贴了个特牛逼的网页,阻止用户打开控制台,标题忘了,可以搜搜
yhxx
241 天前
不引入库是啥意思
找个库把它的代码复制一份算引入库吗
yhxx
241 天前
chrome 可以用这个

(function () {
var re = /x/;
var i = 0;
console.log(re);

re.toString = function () {
return '第 ' + (++i) + ' 次打开控制台';
};
})();

作者:XFD111
链接: https://www.zhihu.com/question/24188524/answer/117094116
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
TaoLoading
241 天前
@Track13 点就是在这,引入库会让插件变大,性能较差
TaoLoading
241 天前
@yhxx #11 这种重写 toString() 的方法已经不行了
Track13
241 天前
@TaoLoading 插件大不等于性能差。
jqtmviyu
241 天前
用 debugger 糊弄下吧.

function check() {
eval(String.fromCharCode(100, 101, 98, 117, 103, 103, 101, 114, 59))
setTimeout(check, 1)
}
check()
maplerecall
241 天前
如果只是按你说的需求就简单了,不用整什么花里胡哨的,直接绑 onresize 检查 UA ,如果变成包含 mobile 了就说明切换到手机模拟器了,因为正常情况下 UA 是不会变的。
ochatokori
241 天前
css 媒体查询不就行了,搞这么复杂
TaoLoading
241 天前
@maplerecall 老哥牛批,原来这时候 UA 也会变,感谢解答
drymonfidelia
241 天前
@TaoLoading 这种为什么不行,我们公司就在用这种方法,不过不是直接阻止用户操作网页而是往 cookies 里写风控标记
drymonfidelia
241 天前
@drymonfidelia 19 指 11 楼 @yhxx 那种 toString 的方法

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1036112

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX