我有一个WPF应用程序,它使用CEF来显示Web内容。我的问题是,有没有办法调试WPF应用程序中的Javascript / Web部件?
在您的应用程序中启用远程调试
C#(CefSharp)
CefSettings.RemoteDebuggingPort = 8088;
C ++
CefSettings settings;
settings.remote_debugging_port = 8088;
然后运行你的应用程序并将你的浏览器指向http://localhost:8088/
以访问Chromium开发者控制台(与你在Chrome中使用Ctrl + Shift + j相同)
您也可以使用ShowDevTools()
扩展方法(source)
ChromiumWebBrowser browser = new ChromiumWebBrowser();
browser.ShowDevTools(); // Opens Chrome Developer tools window
虽然接受的答案是正确的,但它并没有足够的细节。
我在WPF应用程序中使用WinForms控件在CefSharp中使用它。 (WinForms控件似乎有更好的性能)。但是,对于WPF控件,远程调试的代码可能非常相似。
var settings = new CefSettings { RemoteDebuggingPort = 8088 };
Cef.Initialize(settings);
WindowsFormsHost.Child = new ChromiumWebBrowser(url);
然后在浏览器中访问http://localhost:8088/
。
要使用'ShowDevTools()',您需要首先验证浏览器是否已初始化。示例解决方案:
//Add an event to check
ChromeBrowser.IsBrowserInitializedChanged += ChromeBrowser_IsBrowserInitializedChanged;
//Declare the event method to be called
private void ChromeBrowser_IsBrowserInitializedChanged(object sender, IsBrowserInitializedChangedEventArgs e)
{
if (e.IsBrowserInitialized)
{
ChromeBrowser.ShowDevTools();
}
}