【问题标题】:Debugging JavaScript in Chromium Embedded Framework在 Chromium Embedded Framework 中调试 JavaScript
【发布时间】:2015-03-18 09:08:49
【问题描述】:

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

【问题讨论】:

    标签: wpf debugging chromium-embedded


    【解决方案1】:

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

    ChromiumWebBrowser browser = new ChromiumWebBrowser();
    browser.ShowDevTools(); // Opens Chrome Developer tools window
    

    【讨论】:

    • 为什么我以前没有看到这个功能?最新版@Eido95中还存在吗?
    • @gumuruh 是的。
    【解决方案2】:

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

    C# (CefSharp)

    CefSettings.RemoteDebuggingPort = 8088;
    

    C++

    CefSettings settings;
    settings.remote_debugging_port = 8088;
    

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

    【讨论】:

    • 感谢您的回答!不幸的是,在我的应用程序中找不到 CefSettings。我有以下用途:使用 CefSharp;使用 CefSharp.Wpf;我忘了什么吗?
    【解决方案3】:

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

    我在 CefSharp 中使用 WPF 应用程序中的 WinForms 控件进行了这项工作。 (WinForms 控件似乎有更好的性能)。不过,远程调试的代码可能与 WPF 控件非常相似。

    var settings = new CefSettings { RemoteDebuggingPort = 8088 };
    Cef.Initialize(settings);
    WindowsFormsHost.Child = new ChromiumWebBrowser(url); 
    

    然后在浏览器中转到http://localhost:8088/

    【讨论】:

    • 您应该将其标记为答案,或者@Sga 应该将他的答案编辑为您的。
    • 只有 OP 可以将其标记为我相信的答案。没关系,点赞最终会解决的。
    【解决方案4】:

    要使用“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();
            }
        }
    

    【讨论】:

    • 这应该是答案,想你是为了节省我的时间。
    【解决方案5】:

    要打开 Chromium 开发工具窗口,您可以执行以下操作:

    CefBrowser.GetBrowser().GetHost().ShowDevTools();
    

    这类似于 Eido95 的回答,但它不需要扩展方法,它本质上只是包装这些方法调用。

    注意:在调用该方法之前需要对控件进行初始化。如果您正在接线和类似 F12 的功能,这应该不是问题。如果您在应用启动时尝试执行此操作,则需要监听 ChromiumWebBrowser.IsBrowserInitializedChanged 事件

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-31
      • 2021-01-25
      • 2016-01-29
      • 2014-07-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多