Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否可以检测到IE8调试器已连接_Javascript_Ie Developer Tools - Fatal编程技术网

Javascript 是否可以检测到IE8调试器已连接

Javascript 是否可以检测到IE8调试器已连接,javascript,ie-developer-tools,Javascript,Ie Developer Tools,我的应用程序中有一些代码在try/catch块中包装function.apply和function.call。它可以方便地捕获错误并使用arguments.caller构建伪堆栈,但它会破坏IE的调试器 我可以使用url参数关闭包装,但如果附加了调试器,我希望自动关闭包装。我找不到检测调试器的方法。有什么想法吗?这不是你想要的答案,但我在过去通过使用一点loader JS来处理这个问题,它首先检查URL中的哈希(如果有)是否有密码,如: mysite.com/#mXVa 因此,加载程序会检查,如

我的应用程序中有一些代码在try/catch块中包装function.apply和function.call。它可以方便地捕获错误并使用arguments.caller构建伪堆栈,但它会破坏IE的调试器


我可以使用url参数关闭包装,但如果附加了调试器,我希望自动关闭包装。我找不到检测调试器的方法。有什么想法吗?

这不是你想要的答案,但我在过去通过使用一点loader JS来处理这个问题,它首先检查URL中的哈希(如果有)是否有密码,如:

mysite.com/#mXVa


因此,加载程序会检查,如果location.hash=='mXVa',我的加载程序会加载页面上所有脚本的调试版本(无try/catch等),而不是缩小的、吃错的版本。

不确定IE8,但您可以通过检查来检测调试器是否在IE9/IE10/IE11中运行:

var isIeDebugging = !!window.__IE_DEVTOOLBAR_CONSOLE_COMMAND_LINE || ('__BROWSERTOOLS_DOMEXPLORER_ADDED' in window);
e、 g.见

但是,在IE9/IE10中,对于只运行了一次调试器的窗口,即使调试器现在已关闭,也会将其设置为true


同样在IE11中,各种窗口。uu BROWSERTOOLS*键似乎仅根据打开或使用的调试器选项卡显示,因此检查调试框架是否打开并非100%可靠…

它是否会为您提供Firebug和chromes等对象
控制台
?在这种情况下,
if(console)
和一个确定浏览器是否为IE的检查就足够了。@thejh我希望是这样。当调试器打开但未连接时,将显示console。我真的需要知道它是什么时候被连接的。调试器对捕获到的异常有什么反应吗?@thejh问题是,如果try/catch捕获到错误,它就不会中断。最后,我手动删除了try/catch块以再现错误,这样我就可以让它在错误发生时中断。显然,当错误只发生在生产环境中时,这不太好。是的,我现在有类似的设置。这似乎是唯一的办法:(