检测网页是否打开开发者工具(检测F12)
tips ,有个500ms的setInterval ,慎用啊!
有时候我们需要屏蔽一下console 日志:
效果查看:
https://sindresorhus.com/devtools-detect/
代码如下:
(function () {
'use strict'
var devtools = {
open: false,
orientation: null
}
var threshold = 160
var emitEvent = function (state, orientation) {
window.dispatchEvent(new CustomEvent('devtoolschange', {
detail: {
open: state,
orientation: orientation
}
}))
}
setInterval(function () {
var widthThreshold = window.outerWidth - window.innerWidth > threshold
var heightThreshold = window.outerHeight - window.innerHeight > threshold
var orientation = widthThreshold ? 'vertical' : 'horizontal'
if (!(heightThreshold && widthThreshold) &&
((window.Firebug && window.Firebug.chrome && window.Firebug.chrome.isInitialized) || widthThreshold || heightThreshold)) {
if (!devtools.open || devtools.orientation !== orientation) {
emitEvent(true, orientation)
}
devtools.open = true
devtools.orientation = orientation
} else {
if (devtools.open) {
emitEvent(false, null)
}
devtools.open = false
devtools.orientation = null
}
}, 500)
if (typeof module !== 'undefined' && module.exports) {
module.exports = devtools
} else {
window.devtools = devtools
}
})()
然后写一个监听事件,这样每次打开devtool 都会执行如下js
window.addEventListener('devtoolschange', function (e) {
if (e.detail.open) console.clear()
console.log('*******************')
})