gpt4 book ai didi

javascript - 我可以检测到用户在 IE8-9 中打开开发者工具吗?

转载 作者:行者123 更新时间:2023-11-29 14:57:00 26 4
gpt4 key购买 nike

是否可以 Hook 某种事件来检测用户何时打开开发者工具?目前我用 setInterval 来解决这个问题

var interval, consoleOpen = false;
interval = setInterval(function() {
if(typeof console !== 'undefined' && typeof console.log !== 'undefined') {
clearInterval(interval);
consoleOpen = true;
console.log("Console is open!");
// dump debug message queue...
}
}, 100);

但如果可以的话,我想避免这样的解决方案,那么我可以使用更好的方法吗?原因是要保留调试消息的积压,并在控制台出现时立即 console.log() 它们。我已经将消息存储在一个数组中,该数组的工作方式类似于限制为 100 条消息的队列。

最佳答案

这在 IE8 中可能无法正常工作(definePropertysomewhat buggy ),但我手头没有它来验证情况。但是,它在 IE9 [1] 中运行良好。

(感谢这构成了一个不完全完整的解决方案,但它可能是一个有用的起点。)

(function() {
if ('console' in window) return;
if (!Object.defineProperty) return;

Object.defineProperty(window, 'console', {
configurable: true,
enumerable: true,
set: function (val) {
delete this.console; // 'Unwatch' console changes
this.console = val;

// Notify your logging service that it can start
// outputting to `console.log` here
// Logger.start() or whatever's appropriate
}
});
})();

[1] 警告:除了将它扔到 IE 上看看会发生什么之外,我还没有实际测试它。

关于javascript - 我可以检测到用户在 IE8-9 中打开开发者工具吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16209147/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com