Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there a way to enable the IE8 Developer Tools from inside WebBrowser control in a .NET application

Tags:

If you have IE8, you may have noticed a really handy feature that MS has added. Hit F12 and Developer Tools, a firebug like debugger, pops up. This is extremely useful for debugging purposes, and i'm wondering if there is a way to pop up the Developer Tools from a WebBrowser control inside a .NET application.

My situation is this: I have a C# application that has an embedded WebBrowser control. The C# app and the DHTML web browser contents communicate with each other using the ObjectForScripting (C# side) and window.external (DHTML side) interfaces, so in order to test/debug/troubleshoot the full functionality, i need a way to trigger Developer Tools from within the WebBrowser control. Up to now we've been limited to using Firebug Lite which is severely limited or triggering a step debug session of the javascript using the 'debugger;' js, but now we're getting to the point where those options becoming a real hassle and don't allow the full features that we would get out of having something like Firebug or Developer Tools at our disposal.

What I'd really love to do is to be able to pop up Developer Tools from inside my WebBrowser control while the app is running, but I haven't found a way to accomplish this yet.

Has anybody else ran into this issue and found out if there's a way to make it happen?

like image 409
Brien W. Avatar asked Dec 16 '09 20:12

Brien W.


People also ask

How do I enable developer tools in Internet Explorer?

Launch IE. Enter WebGUI URL in IE address bar and login. 2. Once you are ready to re-create the problem, click Tools -> F12 Developer Tools to turn on Developer Tools.

How do I use IEChooser EXE?

In Windows, open the Run dialog box. For example, press the Windows logo key + R . Enter %systemroot%\system32\f12\IEChooser.exe , and then click OK. In IEChooser, select the entry for the IE mode tab.


2 Answers

No, as others have said this is not possible. However there is a way you can wire most of the window errors through to a custom handler. Once the document has finished loading you can attach a listener to the window. e.g.

webBrowser.DocumentCompleted += (o, e) => {     webBrowser.Document.Window.Error += (w, we) =>     {         we.Handled = true;          // Do something with the error...         Debug.WriteLine(             string.Format(                "Error: {1}\nline: {0}\nurl: {2}",                we.LineNumber, //#0                we.Description, //#1                we.Url));  //#2     }; }; 
like image 82
Fraser Avatar answered Oct 03 '22 23:10

Fraser


I believe the developer tools are implemented in the IE host (iexplore.exe), not in MSHTML itself. Obviously the hooks are there for it, but I don't think you can get to the UI and stuff from the control.

like image 40
nitzmahone Avatar answered Oct 03 '22 23:10

nitzmahone