Rhino和envjs:与Java应用程序共享Javascript对象

时间:2013-04-12 17:38:46

标签: rhino envjs

我正在使用我的java应用程序中嵌入的rhino和envjs,如envjs guide

中所述

Java代码:

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");

这是有效的,我的测试javascript文件正确加载远程站点,并使用jQuery对HTML元素进行一些操作。

我无法弄清楚如何将数据从JavaScript发送回我的Java应用程序。

这是我的.js文件:

load('env.rhino.js');
load('jquery.js');
Envjs.scriptTypes['text/javascript'] = true;
window.location = 'http://[mytestpage].html'
var body = $("body");
print("The body is: "+ $.trim(body));//this prints in the Java console!

//I'd like to call a function in my Java code from the Javascript and pass the bodyText as a parameter to it. How can i do this?
myJavaFunction(bodytext);

1 个答案:

答案 0 :(得分:0)

因此,这个Rhino教程在学习如何将Java连接到JS方面非常有用。 https://developer.mozilla.org/en-US/docs/Scripting_Java