Я использую носорога и envjs встроенный в моей Java-приложение, как описано в коде envjs guideRhino и envjs: доля объектов Javascript с применением Java
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-файл правильно загружает удаленный сайт и выполняет некоторые манипуляции с элементами HTML, используя jQuery.
Я не могу понять, как отправить данные из 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);