Wpf 在Chromium嵌入式框架中调试JavaScript
我有一个WPF应用程序,它使用CEF来显示web内容。我的问题是,有没有办法调试WPF应用程序中的Javascript/Web部件?在应用程序中启用远程调试: C#(CefSharp) C++Wpf 在Chromium嵌入式框架中调试JavaScript,wpf,debugging,chromium-embedded,Wpf,Debugging,Chromium Embedded,我有一个WPF应用程序,它使用CEF来显示web内容。我的问题是,有没有办法调试WPF应用程序中的Javascript/Web部件?在应用程序中启用远程调试: C#(CefSharp) C++ CefSettings settings; settings.remote_debugging_port = 8088; 然后运行应用程序并将浏览器指向http://localhost:8088/访问Chrome开发者控制台(与Chrome中的Ctrl+Shift+j操作相同)虽然接受的答案是正确的,但
CefSettings settings;
settings.remote_debugging_port = 8088;
然后运行应用程序并将浏览器指向
http://localhost:8088/
访问Chrome开发者控制台(与Chrome中的Ctrl+Shift+j操作相同)虽然接受的答案是正确的,但实际上没有足够的细节
我在CefSharp中通过在WPF应用程序中使用WinForms控件实现了这一点。(WinForms控件似乎有更好的性能)。远程调试的代码可能与WPF控件非常相似
var settings = new CefSettings { RemoteDebuggingPort = 8088 };
Cef.Initialize(settings);
WindowsFormsHost.Child = new ChromiumWebBrowser(url);
然后转到
http://localhost:8088/
在浏览器中。您也可以使用ShowDevTools()
扩展方法()
要使用“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();
}
}
要打开Chromium开发工具窗口,可以执行以下操作:
CefBrowser.GetBrowser().GetHost().ShowDevTools();
这与Eido95的答案类似,但它不需要扩展方法,扩展方法本质上只是包装这些方法调用
注意:在调用此方法之前,需要初始化控件。如果你是接线和F12一样的功能,这应该不是一个问题。如果在应用程序启动时尝试执行此操作,则需要收听ChromiumWebBrowser.IsBrowserInitializedChanged事件的谢谢您的回答!不幸的是,在我的应用程序中找不到设置。我有以下用法:使用CefSharp;使用CefSharp.Wpf;我忘了什么吗?你应该把它标记为答案,或者@Sga应该把它编辑成你的答案。我相信只有OP可以把它标记为答案。不管怎样,upvows最终会解决这个问题。为什么我以前没有看到这个函数?它在最新版本的@Eido95中仍然存在吗?@gumuruh是的,它存在。
//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();
}
}
CefBrowser.GetBrowser().GetHost().ShowDevTools();