Hemlock
Hemlock

Reputation: 6210

Is it possible to detect that the IE8 debugger is attached

I have some code in my application that wraps function.apply and function.call in try/catch blocks. It's handy for catching errors and building up a pseudo-stack using arguments.caller but it plays havoc with IE's debugger.

I can turn off the wrapping with a url parameter but I'd like to turn it off automatically if the debugger is attached. I can't find a way to detect the debugger. Any ideas?

Upvotes: 2

Views: 680

Answers (2)

robocat
robocat

Reputation: 5413

Not sure for IE8, but you can detect if the debugger is running in IE9/IE10/IE11 by checking:

var isIeDebugging = !!window.__IE_DEVTOOLBAR_CONSOLE_COMMAND_LINE || ('__BROWSERTOOLS_DOMEXPLORER_ADDED' in window);

e.g. see http://jsbin.com/IJOwuje/5

However, in IE9/IE10 this is set to true for a window that has run the debugger just once, even if the debugger now closed.

Also in IE11 the various window.__BROWSERTOOLS* keys seem to only appear depending upon which debugger tab is open or used, so not 100% reliable for checking if the debugging frame is open...

Upvotes: 2

Chris Moschini
Chris Moschini

Reputation: 37957

This isn't the answer you wanted, but I've handled this in the past by having a small bit of loader JS that begins by checking the hash, if any, in the URL, for a secret code, like:

mysite.com/#mXVa

So the loader checks and if location.hash == 'mXVa', my loader loads the debug versions of all the scripts on the page (no try/catch, etc) rather than the minified, error-eating variety.

Upvotes: 0

Related Questions