Gibt es eine Möglichkeit, die IE8-Entwicklertools von innen WebBrowser-Steuerelement in einer .NET-Anwendung zu ermöglichen,

StackOverflow https://stackoverflow.com/questions/1917314

Frage

Wenn Sie IE8 haben, haben Sie eine wirklich praktische Funktion bemerkt, dass MS hinzugefügt. Hit F12 und Entwickler-Tools, ein Firebug wie Debugger, erscheinen. Dies ist äußerst nützlich für Debugging-Zwecke, und ich frage mich, ob es einen Weg, um die Entwicklertools von einem WebBrowser-Steuerelement in einer .NET-Anwendung.

ist meine Situation so: Ich habe eine C # -Anwendung, die eine eingebettete WebBrowser Kontrolle hat. Die C # app und die DHTML Web-Browser Inhalte kommunizieren miteinander, um den ObjectForScripting (C # Seite) mit und window.external (DHTML Seite) Schnittstellen, so um Test / debug / troubleshoot die volle Funktionalität, ich brauche einen Weg, um Trigger-Entwickler Werkzeuge aus dem WebBrowser-Steuerelement. Bis jetzt haben wir mit Firebug Lite , die stark eingeschränkt wird oder das Auslösen einer Stufe Debug-Sitzung von das Javascript die Verwendung von ‚Debugger;‘ js, aber jetzt sind wir an dem Punkt, wo diese Optionen ein echtes Gefummel zu werden und nicht die vollen Funktionen ermöglichen es, dass wir so etwas wie Firebug oder Developer Tools von mit uns zur Verfügung bekommen würde.

Was würde ich wirklich liebe, ist zu tun, um die Kontrolle Pop-up Developer Tool aus meiner Web-Browser, während die App läuft, aber ich habe festgestellt, keinen Weg, dies noch zu erreichen.

Hat jemand anderes ran in diesem Thema und fand heraus, ob es einen Weg, um es geschehen zu lassen?

War es hilfreich?

Lösung

Nein, wie andere gesagt haben dies nicht möglich ist. Allerdings gibt es eine Art und Weise Sie die meisten der Fenster Fehler bis hin zu einem benutzerdefinierten Handler verbinden kann. Sobald das Dokument fertig geladen hat, können Sie einen Listener an das Fenster befestigen. z.

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
    };
};

Andere Tipps

Ich glaube, die Entwickler-Tools in dem IE-Host implementiert werden (iexplore.exe), nicht in MSHTML selbst. Offensichtlich sind die Haken gibt es für sie, aber ich glaube nicht, dass Sie auf der Benutzeroberfläche und Sachen aus der Kontrolle zu bekommen.

Es gibt keine Möglichkeit für die Embedded-Hosts des integrierten Entwicklertools zu verwenden. Aber wenn Sie debuggen wollen, sollten Sie noch in der Lage sein, können Sie Visual Studio / windbg Ihrer App anhängen, schlimmsten Sie Haltepunkte mit dem „Debugger“ Schlüsselwort einfügen könnte. In VS können Sie Skript wählen Sie aus dem „wählen ...“ Menü unter „Debug dieser Code-Typen“ haben.

Eine Möglichkeit ist, ein untergeordnetes Fenster von der eingebetteten Seite zu öffnen, das Kind Fenster geöffnet, in IE und die Developer Tools arbeiten, können Sie dann tun

window.opener

in der Konsole mit dem Elternteil beziehen und die Seite bearbeiten.

oder ersetzen Sie die Eltern-Konsole mit dem Kind und Umleitung zu.

 var logWindow = window.open();
        logWindow.document.write('<html><head><title>Child Log Window</title></head>\x3Cscript>window.opener.console = console;\x3C/script><body><h1>Child Log Window</h1></body></html>');
        window.onunload = function () {
            if (logWindow && !logWindow.closed) {
                logWindow.close();
            }
        };

keine ideale Lösung, aber Sie können Visual Studio verwenden, um Ihre Anwendung in Script Modus zu befestigen und debuggen. Sie sollten nicht Debuggen der Anwendung und / oder starten Sie eine andere Instanz Visual Studio:

  
      
  • DEBUG > Attach To Process ...
  •   
  • Attach to muss Script sein und wählen Sie Ihre laufende Instanz der Anwendung
  •   
  • Und schließlich Attach
  •   
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top