在Chromium Embedded Framework中调试JavaScript

ste*_*fan 20 debugging wpf chromium-embedded

我有一个WPF应用程序,它使用CEF来显示Web内容.我的问题是,有没有办法调试WPF应用程序中的Javascript/Web部件?

Eid*_*o95 36

您也可以使用ShowDevTools()扩展方法()

ChromiumWebBrowser browser = new ChromiumWebBrowser();
browser.ShowDevTools(); // Opens Chrome Developer tools window
Run Code Online (Sandbox Code Playgroud)

CEFSharp开发人员工具窗口


Sga*_*Sga 30

在您的应用程序中启用远程调试

C#(CefSharp)

CefSettings.RemoteDebuggingPort = 8088;
Run Code Online (Sandbox Code Playgroud)

C++

CefSettings settings;
settings.remote_debugging_port = 8088;
Run Code Online (Sandbox Code Playgroud)

然后运行您的应用并指向您的浏览器以http://localhost:8088/访问Chromium开发人员控制台(与Chrome + Ctrl + Shift + j相同)


cra*_*mes 24

虽然接受的答案是正确的,但它并没有足够的细节.

我在WPF应用程序中使用WinForms控件在CefSharp中使用它.(WinForms控件似乎有更好的性能).但是,对于WPF控件,远程调试的代码可能非常相似.

var settings = new CefSettings { RemoteDebuggingPort = 8088 };
Cef.Initialize(settings);
WindowsFormsHost.Child = new ChromiumWebBrowser(url); 
Run Code Online (Sandbox Code Playgroud)

然后转到http://localhost:8088/您的浏览器.

  • 只有OP才能将其标记为我认为的答案.无论如何,upvotes最终会解决它. (3认同)

小智 6

要使用“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();
        }
    }
Run Code Online (Sandbox Code Playgroud)