我能否在VS 2012的WebBrowser控件中调试JavaScript代码?

4
我想知道在Winform应用程序中是否可以使用VS 2012的调试器来针对WebBrowser控件中的JavaScript代码进行调试。我不是在浏览器(如IE)中进行调试,而是在运行代码时使用的方式。我已经尝试在我的JavaScript代码中添加"debugger;",但它仍然会顺序执行并没有停止。以下是我使用它的一个示例。
function addDeleteButton(poly, imageUrl) {
        debugger;
        var path = poly.getPath();
        path["btnDeleteClickHandler"] = {};

你尝试过仅启用客户端调试吗?在Internet Explorer中也启用了调试吗? - Borys Generalov
我不使用IE,因为这是在WinForm应用程序中,并且代码位于WebBrowser控件中。 - Programmer
1
没错,但仍然需要启用这些选项。例如,请查看此链接:http://blogs.perl.org/users/mark_leighton_fisher/2011/09/debugging-javascript-in-a-webbrowser-control-from-vs2010.html - Borys Generalov
我想我对于你使用Internet Explorer的意思以及它与主题的关系感到困惑了。这是我的错吧。不过它起作用了,非常感谢! - Programmer
1个回答

15

感谢Borys Generalov提供这个答案!

您可以在此处找到说明http://blogs.perl.org/users/mark_leighton_fisher.

您可以从VS2010(Visual Studio 2010)中调试嵌入在.NET 4.0应用程序中的WebBrowser控件内执行的JavaScript,但需要一些努力。

  1. 在Internet Explorer中启用脚本调试(IE和其他浏览器均需)。
  2. 在Internet Explorer中禁用友好的HTTP消息。
  3. 在Internet Explorer中启用有关每个脚本错误的通知显示。
  4. 修改VS2010以从“附加进程”对话框调试脚本。请注意,您不能同时调试JavaScript(Script)和.NET 4.0代码。(我不知道为什么。)
  5. 在您的JavaScript开头添加一个debugger;语句。
  6. 在没有调试的情况下启动嵌入WebBrowser的应用程序(Ctrl-F5)。
  7. 当您的应用程序遇到JavaScript debugger;语句时,选择当前的VS2010实例。
  8. 大功告成!现在,您可以调试在您的.NET 4.0应用程序中的WebBrowser控件内执行的JavaScript。

无论何时调试或在VS2012中运行代码,都需要执行此操作。


2
是的,当你需要它时,这非常棒。https://weblog.west-wind.com/posts/2017/Jul/06/JavaScript-Debugging-in-a-Web-Browser-Control-with-Visual-Studio - Rick Strahl

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接