是否可以检测到用户在IE8-9中打开开发人员工具?
Can I detect the user opening developer tools in IE8-9?
当用户打开开发工具时,是否有某种事件可以检测到?目前我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中不起作用(defineProperty
有些bug),但我没有人手来验证这种情况。但是,它在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看看会发生什么
相关文章:
- Chrome开发工具(如何知道我在调用哪个javascript对象)
- Chrome开发工具中使用了哪些框架和库
- `当使用箭头函数时,“开发工具”中未定义“this”
- 有没有一种方法可以使用任何浏览器扩展整个dom树'的开发工具
- $.get-response没有responseJSON方法,但当我在Chrome开发工具中绑定它时,它确实有
- 无法在Chrome开发工具中实时编辑Javascript
- 在Chrome开发工具中测量步骤之间的时间
- Redux开发工具Chrome扩展Immutable.js导致错误
- 未注释img´除非调整浏览器大小、缩放或打开开发工具,否则不会显示
- Chrome 开发工具:如何计算加载弹出窗口并将其显示在页面上所需的总时间
- AWS S3 JavaScript 开发工具包 getSignedUrl 仅返回基本路径
- 是否有“”的键盘快捷键;暂停动画”;Chrome开发工具中的功能?(F12)
- 哪个webpack开发工具适合chrome应用程序
- 如何使用Chrome'查看窗口对象中定义了哪些变量;的开发工具
- Chrome在刷新应用程序后30秒以上没有响应(打开了开发工具)
- Chrome开发工具未捕获AJAX请求
- Chrome开发工具命中代码但未命中断点
- 无法在javascript中访问PHP数组,初始化为数组的javascript对象在chrome开发工具中最终为空
- Fetch元素鼠标当前指向的Chrome开发工具已启用
- 在Chrome开发工具中隐藏JavaScript文件