1

有谁知道任何ScriptEngine理解/包含隐式DOM对象(如window,document等)的 Java self?我不能使用JavaFX WebEngine,因为我没有开发 JavaFX 应用程序。

4

3 回答 3

1

不能完美回答你的问题

但是我们使用了 Qt 的 WebView,它提供了类似浏览器的功能。它与 JavaFX WebEngine 相同。而且PhoneGap 还为移动设备提供了webview。

因此,请正确说明您要在哪种情况下添加脚本引擎?

请参阅链接以获取与 Qt 有关的基本信息 http://www.slideshare.net/QT-day/qt-webkit

于 2013-05-23T18:42:59.050 回答
0

没有办法做到这一点。像 JVM 中的 'window' 和 'document' 这样的 DOM 变量没有意义。

Java ScriptEngine 是为了让您可以“编写”通常在普通 java 中执行的逻辑。

于 2013-05-23T16:16:51.387 回答
0

一种解决方案是使用 Envjs。按照这个示例如何嵌入到 Java 应用程序中。现在我可以使用document.titledocument.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(...);
于 2013-05-24T02:19:32.080 回答