Отладка JavaScript в Chromium Embedded Framework

У меня есть приложение WPF, которое использует CEF для отображения веб-контента. Мой вопрос в том, есть ли способ отладить Javascript/веб-части внутри приложения WPF?

Ответ 1

Включение удаленной отладки в приложении:

С# (CefSharp)

CefSettings.RemoteDebuggingPort = 8088;

С++

CefSettings settings;
settings.remote_debugging_port = 8088;

затем запустите приложение и укажите браузеру http://localhost:8088/ для доступа к консоли разработчика Chromium (то же, что у вас в Chrome с Ctrl + Shift + j)

Ответ 2

Вы также можете использовать ShowDevTools() расширения ShowDevTools() (источник)

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

CEFSharp Developer Tools window

Ответ 3

В то время как принятый ответ верен, на нем не хватает подробностей.

Я получил эту работу в CefSharp, используя элемент управления WinForms в приложении WPF. (похоже, что управление WinForms имеет лучшую производительность). Код для удаленной отладки, вероятно, будет очень похож на элемент управления WPF.

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

Затем перейдите в http://localhost:8088/ в своем браузере.

Ответ 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();
        }
    }