c# - utilizables - visual studio 2015 webbrowser control ie version
¿Hay alguna manera de habilitar las Herramientas de desarrollo IE8 desde el control WebBrowser en una aplicación.NET? (4)
Creo que las herramientas de desarrollador se implementan en el host IE (iexplore.exe), no en el propio MSHTML. Obviamente, los ganchos están ahí para lograrlo, pero no creo que puedas acceder a la UI y nada del control.
Si tiene IE8, puede haber notado una característica realmente útil que MS ha agregado. Pulse F12 y Herramientas de desarrollador, un depurador parecido a un firebug, aparece. Esto es extremadamente útil para la depuración, y me pregunto si hay una manera de abrir las herramientas de desarrollo desde un control WebBrowser dentro de una aplicación .NET.
Mi situación es la siguiente: tengo una aplicación C # que tiene un control WebBrowser incrustado. La aplicación C # y el contenido del navegador web DHTML se comunican entre sí utilizando las interfaces ObjectForScripting (lado C #) y window.external (lado DHTML), por lo que para probar / depurar / solucionar problemas de la funcionalidad completa, necesito una forma de desencadenar Developer Herramientas desde el control WebBrowser. Hasta ahora, nos limitábamos a utilizar Firebug Lite, que está muy limitado o activar una sesión de depuración por pasos de JavaScript utilizando el ''depurador''; js, pero ahora estamos llegando al punto en que esas opciones se convierten en una verdadera molestia y no permiten las características completas que obtendríamos al tener a nuestra disposición herramientas como Firebug o Developer Tools.
Lo que realmente me gustaría hacer es poder abrir Herramientas de desarrollo desde mi control WebBrowser mientras la aplicación se está ejecutando, pero aún no he encontrado una manera de lograrlo.
¿Alguien más se ha encontrado con este problema y ha descubierto si hay alguna manera de hacerlo realidad?
No hay forma de que los hosts incorporados utilicen las herramientas de desarrollador integradas. Pero si desea depurar todavía debe poder, puede conectar visual studio / windbg a su aplicación, en el peor de los casos puede insertar puntos de interrupción con la palabra clave "debugger". En VS, puede que tenga que seleccionar la secuencia de comandos del menú "Seleccionar ..." en "depurar estos tipos de código".
No, como otros han dicho que esto no es posible. Sin embargo, hay una forma de conectar la mayoría de los errores de la ventana a un controlador personalizado. Una vez que el documento ha terminado de cargarse, puede adjuntar un oyente a la ventana. p.ej
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
};
};
Una opción es abrir una ventana secundaria desde la página incrustada, la ventana secundaria se abre en IE y las Herramientas de desarrollador funcionan, entonces puede hacer
window.opener
en la consola para referirse al padre y manipular la página.
O reemplace la consola de los padres con la del niño y redirija a ella.
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();
}
};