在WebBrowser控件中调试HTML

8
我需要在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 虽然我不知道它的相关性。

你试过下面的答案吗? - Parag Meshram
@ParagM 当我尝试这个解决方案时,我收到了“找不到源代码”的错误提示。 - David
请详细说明您在哪行代码上遇到了这个错误?如果可能的话,请提供一个屏幕截图。 - Parag Meshram
2个回答

14

在你网站的"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的新实例”

希望这可以帮助你。


2
我必须在 Internet 选项中取消勾选“禁用脚本调试(其他)”才能使其正常工作。 - Holistic Developer
您还可以将调试器附加到当前的 Visual Studio 实例上 - 只需确保在不进行调试的情况下启动应用程序即可。 - sephirot

2
除了Parag提到的方法,您还可以在Visual Studio中显式附加调试器,并选择Attach to: Script code
完成后,所有打开的脚本都会显示在Visual Studio中,称为Script Documents,您可以在任何这些脚本中设置断点。您可以重复使用同一实例进行多个调试会话。您还可以打开JavaScript控制台和DOM资源管理器,这使您可以访问与完整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 View / Evaluation窗口。您仍然可以步进和调试值,但无法实时评估或查看console.log输出。

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