JAVAFX / WebView / WebEngine FireBugLite или какой-нибудь другой отладчик?

Я разрабатываю приложение и должен запускать отладчик в части приложения WebView / WebEngine, чтобы лучше отлаживать приложение. Но код, который я нашел через Интернет, чтобы ввести Firebug Lite, по какой-то причине не работает.

Сам код Javascript отлично работает, если я запускаю его на консоли Firefox, но не тогда, когда один и тот же код выполняется через веб-просмотр JavaFX / веб-сайт. Консоль netbeans не выдает никаких ошибок другим … поэтому я не уверен, почему интерфейс FirebugLite не является рендерингом / загрузкой.

Что может быть причиной этого, любые другие альтернативы?

Я использую JavaFX 2.2

// Не работает.

webView.getEngine().executeScript("if (!document.getElementById('FirebugLite')){E = document['createElement' + 'NS'] && document.documentElement.namespaceURI;E = E ? document['createElement' + 'NS'](E, 'script') : document['createElement']('script');E['setAttribute']('id', 'FirebugLite');E['setAttribute']('src', 'https://getfirebug.com/' + 'firebug-lite.js' + '#startOpened');E['setAttribute']('FirebugLite', '4');(document['getElementsByTagName']('head')[0] || document['getElementsByTagName']('body')[0]).appendChild(E);E = new Image;E['setAttribute']('src', 'https://getfirebug.com/' + '#startOpened');}"); 

Я смог решить проблему. Похоже, что текущая стабильная версия FirebugLite хорошо работает для традиционных браузеров, но что-то другое, что приводит к сбою приложения, просматриваемого JAVAFX WebView.

Я смог добавить Firebug в свое приложение, используя несжатую версию FirebugLite

  

Решение взято из: Тестирование IE6 с Firebug Lite

Команда, которую вы предоставили в своем вопросе, работает для меня (в основном).

Возможно, вы не дожидаетесь, пока WebView загрузит документ, прежде чем пытаться запустить Firebug.

Например, следующий код запустит Firebug Lite для меня (JavaFX 8b103, OS X 10.8).

 import javafx.application.Application; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.scene.Scene; import javafx.scene.web.WebEngine; import javafx.scene.web.WebView; import javafx.stage.Stage; import org.w3c.dom.Document; public class WebViewWithDebugger extends Application { public static void main(String[] args) { launch(args); } @Override public void start(Stage primaryStage) { final WebView webView = new WebView(); final WebEngine engine = webView.getEngine(); engine.load("http://docs.oracle.com/javafx/2/get_started/animation.htm"); engine.documentProperty().addListener(new ChangeListener() { @Override public void changed(ObservableValue prop, Document oldDoc, Document newDoc) { enableFirebug(engine); } }); primaryStage.setScene(new Scene(webView)); primaryStage.show(); } /** * Enables Firebug Lite for debugging a webEngine. * @param engine the webEngine for which debugging is to be enabled. */ private static void enableFirebug(final WebEngine engine) { engine.executeScript("if (!document.getElementById('FirebugLite')){E = document['createElement' + 'NS'] && document.documentElement.namespaceURI;E = E ? document['createElement' + 'NS'](E, 'script') : document['createElement']('script');E['setAttribute']('id', 'FirebugLite');E['setAttribute']('src', 'https://getfirebug.com/' + 'firebug-lite.js' + '#startOpened');E['setAttribute']('FirebugLite', '4');(document['getElementsByTagName']('head')[0] || document['getElementsByTagName']('body')[0]).appendChild(E);E = new Image;E['setAttribute']('src', 'https://getfirebug.com/' + '#startOpened');}"); } } 

отладка

Сам Firebug Lite не кажется особенно отличным при отладке веб-страниц (по крайней мере, в WebView для меня). Консоль, html, css и dom панели выглядели нормально, а также опция проверки. Так что там какая-то полезная информация. Часть скрипта показала скрипты, но я все равно не видел, чтобы установить контрольные точки, часы и т. Д. В скриптах.

Я нашел в JavaFX Webview, что лучший способ быстрой отладки javascript состоял в следующем:

 webView.getEngine().setOnAlert(new EventHandler>() { @Override public void handle(WebEvent event) { System.out.println(event.getData()); } }); 

Это проходит через все ваши alert("whatever"); fragmentы кода, чтобы вы могли видеть, что происходит.

  • SwipeRefreshLayout + WebView, когда позиция прокрутки находится наверху
  • Кэширование в веб-браузере Android
  • Интеграция JavaFX 2.0 WebView в приложение Swing Java SE 6
  • Как установить начальный масштаб / ширину для веб-просмотра
  • Производительность WebView в JavaFX
  • Как использовать собственный шрифт с помощью WebView
  • Android - Язык WebView внезапно меняется на Android N
  • Добавить индикатор выполнения в WebView
  • Как я могу отобразить pdf-документ в Webview?
  • Android WebView с искаженными символами UTF-8.
  • Открытие веб-браузера не в новом браузере
  • Давайте будем гением компьютера.