Rhino и envjs: делиться объектами Javascript с Java-приложением
Я использую rhino и envjs, встроенные в мое приложение Java, как описано в руководстве envjs
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);
1 ответ
Так что этот урок Rhino был очень полезен для изучения того, как подключить вашу Java к JS. https://developer.mozilla.org/en-US/docs/Scripting_Java