在 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 控件的应用程序崩溃

VS2008怎么添加webbrowser控件

如何在 C# 中更新 WebBrowser 控件中的 DOM 内容?

C#webbrowser控件是不是能获取JS加载的数据

如何让 JavaScript 在 WebBrowser 控件中运行?

HTML 'img' 标签在 WebBrowser 控件中不起作用