在 WebBrowser 控件中调试 HTML
Posted
技术标签:
【中文标题】在 WebBrowser 控件中调试 HTML【英文标题】:Debugging HTML in WebBrowser Control 【发布时间】:2012-08-20 11:09:47 【问题描述】:我需要在 Winforms 项目中嵌入 html 并从中调用 javascript 函数。我在 c# 项目中使用 webBrowser 控件并调用:
webBrowser.Navigate("website");
return webBrowser.Document.InvokeScript("myMethod", new object[]"test");
当调试器在“myMethod”中时,如何调试代码的执行?
有这篇关于如何从 IE 调试 HTML 的文章: http://www.codeproject.com/Articles/18921/Using-Visual-Studio-to-Debug-JavaScript-in-IE
但我不知道它有多相关。
【问题讨论】:
你试过下面的答案吗? @ParagM 我在尝试此解决方案时收到“找不到源代码”。 您能否详细说明您收到此错误的代码行?如果可能,请提供屏幕截图。 【参考方案1】:在您网站的“myMethod”函数中添加以下“debugger”行 -\
function myMethod(arg1, arg2)
// when myMethod executes you will get prompt that with which
// debugger you want to execute
// then from prompt select "New Instance of Visual Studio 2xxx"
debugger;
//
...
...
“debugger”语句将提示调试 JavaScript。
当 myMethod 执行时,你会得到提示 您要执行的调试器,然后从提示中选择“Visual Studio 2xxx 的新实例”
希望这会有所帮助。
【讨论】:
我必须在 Internet 选项中取消选中Disable script debugging (Other)
才能使其正常工作。
您还可以将调试器附加到 Visual Studio 的当前实例 - 只需确保您在没有调试的情况下启动应用程序。【参考方案2】:
除了 Parag 提到的方法之外,您还可以在 Visual Studio 中显式附加一个调试器,然后选择附加到:脚本代码。
完成后,您可以让所有打开的脚本在 Visual Studio 中显示为 脚本文档,并且您可以在任何这些脚本中设置断点。您可以为多个调试会话重用同一个实例。您还可以打开 JavaScript 控制台和 DOM Explorer,让您可以访问与完整 Internet Explorer 相同的工具。
更多详情请参阅此处的博文:https://weblog.west-wind.com/posts/2017/Jul/06/JavaScript-Debugging-in-a-Web-Browser-Control-with-Visual-Studio
注意:Visual Studio 2019 使脚本调试更难设置,不幸的是不再支持控制台视图/评估窗口。您仍然可以单步调试和调试值,但无法实时评估或查看
console.log
输出。
【讨论】:
以上是关于在 WebBrowser 控件中调试 HTML的主要内容,如果未能解决你的问题,请参考以下文章
安装 IE9 后使用 WebBrowser 控件的应用程序崩溃
如何在 C# 中更新 WebBrowser 控件中的 DOM 内容?