Есть ли способ, чтобы включить инструменты разработчика в IE8 внутри WebBrowser элемент управления в приложение a.NET
Если у вас есть IE8, вы, возможно, заметили действительно удобную функцию, которую MS добавил. Хит F12 и инструменты разработчика, поджигатель, как отладчик, выскакивает. Это чрезвычайно полезно для отладки, и мне интересно, есть ли способ открыть Инструменты разработчика из элемента управления WebBrowser внутри приложения .NET.
Моя ситуация такова: у меня есть приложение C#, которое имеет встроенный элемент управления WebBrowser. Приложение C# и содержимое веб-браузера DHTML взаимодействуют друг с другом другие используют ObjectForScripting (сторона C#) и window.внешние интерфейсы (сторона DHTML), поэтому для тестирования/отладки/устранения неполадок полной функциональности мне нужен способ запуска инструментов разработчика из элемента управления WebBrowser. До сих пор мы были ограничены использованием Firebug Lite , который сильно ограничен или запускает сеанс пошаговой отладки javascript с помощью "debugger;" js, но теперь мы подходим к тому моменту, когда эти опции становятся реальной проблемой и не позволяют в полной мере использовать javascript. функции, которые мы получили бы из чего-то вроде Firebug или инструментов разработчика в нашем распоряжении.
Что я действительно хотел бы сделать, так это иметь возможность всплывать инструменты разработчика из моего элемента управления WebBrowser во время работы приложения, но я еще не нашел способ сделать это.
Кто-нибудь еще сталкивался с этой проблемой и выяснил, есть ли способ сделать это?
5 ответов:
Нет, как говорили другие, это невозможно. Однако есть способ, которым вы можете передать большинство ошибок окна через пользовательский обработчик. После завершения загрузки документа вы можете прикрепить прослушиватель к окну. например
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 }; };
Я считаю, что инструменты разработчика реализованы в Хосте IE (iexplore.exe), а не в самом MSHTML. Очевидно, что крючки существуют для этого, но я не думаю, что вы можете добраться до пользовательского интерфейса и всего остального из элемента управления.
Встроенные хосты не могут использовать встроенные средства разработчика. Но если вы хотите выполнить отладку, вы все равно можете присоединить visual studio / windbg к своему приложению, в худшем случае вы можете вставить точки останова с ключевым словом "debugger". В VS вам, возможно, придется выбрать скрипт из меню " выбрать..."меню в разделе" отладка этих типов кода".
Одним из вариантов является открытие дочернего окна со встроенной страницы, дочернее окно открывается в IE и инструменты разработчика работают, вы можете сделать
window.openerВ консоли для обращения к родителю и манипулирования страницей.
Или замените консоль родителей на консоль ребенка и перенаправьте на нее.
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(); } };
Не идеальное решение, но вы можете использовать Visual Studio для присоединения и отладки вашего приложения в режиме
Script. Не следует отлаживать приложение и / или запускать другой экземпляр Visual Studio:
DEBUG > Attach To Process ...Attach toдолжно бытьScriptи выберите запущенный экземпляр приложения- и, наконец,
Attach
Comments