我正在开发应用程序,需要在应用程序的WebView/WebEngine部分上运行调试器,以便更好地调试应用程序。但是由于某种原因,我在互联网上发现的用于注入(inject)Firebug Lite的代码无法正常工作。

如果我在Firefox控制台上运行Javascript代码,则它本身可以很好地运行,但是当通过JavaFX webview/webengine执行相同的代码时,JavaScript代码本身不能运行。 netbeans控制台不会向其他人抛出任何错误...所以我不确定为什么FirebugLite UI无法呈现/加载。

是什么原因造成的,还有其他替代方法吗?

我正在使用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所查看的应用程序使用。

我可以使用未压缩的FirebugLite版本将Firebug添加到我的应用程序中

<script type='text/javascript' src='http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js'></script>

解决方案来自:Testing IE6 with Firebug Lite

关于JAVAFX/WebView/WebEngine FireBugLite或其他调试器?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17387981/

10-09 08:01