需求:
用户在没有打开控制台的时候,不显示某个字段;用户打开控制台的时候,才显示
问题:
我们前端如何判断用户打开了控制台
思考:
解决方案:
- 监听事件(F12,或者鼠标组合键等)
- 百度一下
- 插件处理
过程:
监听事件:
- 监听键盘F12键这个比较容易,但是要监听用户的鼠标事件就很困难
- 打开控制台的方法有点多,自己很难每种方式都处理
- 只能知道用户点了右键,但是点击后用户选择的是哪个就不知道了,自己手撸确实挺麻烦。
百度一下:
- 网上提供了一些”奇淫技巧“
- 提供一个比较权威的解决方案
- https://stackoverflow.com/questions/7798748/find-out-whether-chrome-console-is-open#
- 但是还是会有一些问题,他的原理就是重写了toString方法
- 如果你调用了控制台就会调用console的方法,然后在处理toString方法的时候就会告诉你当前控制台的状态
插件处理:
- github上有人专门处理这个问题,给出了一个包插件
- 用第三方库来判断是比较省心的
- 缺点可能就是代码重了点
- https://github.com/sindresorhus/devtools-detect
- 这个库挺好的,可以参考一下