是否有人知道任何理解/包含ScriptEngine
,DOM
,window
等隐含document
个对象的Java self
?我不能使用JavaFX WebEngine
因为我没有开发JavaFX应用程序。
答案 0 :(得分:1)
不完全回答你的问题
但是我们使用了Qt的WebView,它提供了类似浏览器的功能。它与JavaFX WebEngine相同。 PhoneGap还为移动设备提供webview。
那么请正确澄清您想要添加脚本引擎的情况吗?
请参阅与Qt相关的基本信息的链接 http://www.slideshare.net/QT-day/qt-webkit
答案 1 :(得分:0)
没有办法。 JVM中的'window'和'document'等DOM变量没有意义。
创建了Java ScriptEngine,因此您可以“编写”通常在普通java中执行的逻辑。
答案 2 :(得分:0)
其中一个解决方案是使用Envjs。按照这个example如何嵌入Java应用程序。现在我可以使用document.title
,document.getElementById('embed_rhino_dojo_shell').innerHTML
等
import org.mozilla.javascript.Context;
import org.mozilla.javascript.ContextFactory;
import org.mozilla.javascript.tools.shell.Global;
import org.mozilla.javascript.tools.shell.Main;
...
Context cx = ContextFactory.getGlobal().enterContext();
cx.setOptimizationLevel(-1);
cx.setLanguageVersion(Context.VERSION_1_5);
Global global = Main.getGlobal();
global.init(cx);
Main.processSource(cx, "path/to/your/JSfile");
cx.evaluateString(...);