У меня есть приложение WPF, которое использует CEF для отображения веб-контента. Мой вопрос в том, есть ли способ отладить Javascript/веб-части внутри приложения WPF?
Отладка JavaScript в Chromium Embedded Framework
Ответ 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
Ответ 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();
}
}