是否有人有办法检测Firebug的开启和关闭。
我知道你可以做到以下几点:
if (window.console && window.console.firebug) {
//Firebug is enabled
}
但这仅在页面加载时检测到firebug控制台。我想做的是在一个没有打开萤火虫的页面上,检测到萤火虫控制台的开启。
我尝试了以下内容,但没有运气
setInterval(function(){
if(window.console && window.console.firebug){
...
else
...
}, 1000);
非常感谢任何帮助。
马特
答案 0 :(得分:2)
简直......你不能。 firebug窗口不仅仅是页面上的另一对div元素。
答案 1 :(得分:2)
Firebug window.console对象是在页面中第一个Javascript执行之前创建的,但前提是Firebug在第一个JS之前对页面处于活动状态,并且用户启用了Firebug控制台面板。
换句话说,在页面中,您只能检测控制台是否已启用。但是为了你的目的应该足够了。
如果用户关闭页面的Firebug,我们应该删除控制台属性。我不知道我们是否真的那么做。
答案 2 :(得分:1)
你可以把它作为
var t = setTimeout("CheckFireBug()",10000);
function CheckFireBug() {
var t = setTimeout("CheckFireBug()",10000);
if (window.console && window.console.firebug) {
//Firebug is enabled
console.debug('Firebug is enabled.');
} else {
//Firebug is not enabled
console.debug('Firebug is not enabled.');
}
}
答案 3 :(得分:1)
Firebug会覆盖console
的{{1}}属性,因此您可能会这样检测到它:
window
问题是当Firebug关闭时此对象仍然存在,因此您无法检测到该对象。也许有其他方法,但我找不到它。
<强>详细信息:强>
从文档脚本访问Firebug的执行上下文是不可能的,因此我们只能等待Firebug访问某些var _console = window.console;
Object.defineProperty(window, 'console', {
set: function (x) {
if (x.exception) { // check if this is actually Firebug, and not the built-in console
alert('Firebug on');
}
_console = x;
},
get: function () {
return _console;
}
});
的属性,这在关闭Firebug时似乎不会发生。以下是关机期间的一些事件,使用FBTrace:
我在堆栈跟踪中搜索了“泄漏”到window
,但找不到任何内容。
答案 4 :(得分:1)
console.table()将返回“_firebugIgnore”。
if( window.console && (console.firebug ||
console.table && /firebug/i.test(console.table()) ))
{
alert('Firebug is running');
}else{
alert('Firebug is not found');
}
答案 5 :(得分:0)
如果您只想检测Firebug开启/关闭,您可以检查窗口调整大小/模糊事件。