0

我正在 RhinoScriptEngine 中执行第三方 javascript 文件。该文件包含对“this”中方法的引用。即this.getField。编写该文件时期望“this”是 js Window 对象以外的某个对象。所以现在当我运行脚本时,我收到了这个错误:

在对象 [对象全局] 中找不到函数 getField

使用 Java ScriptEngine (Rhino),如何更改“this”所指的对象?谢谢!

一般来说,我可以调用类似 scriptEngine.eval(script) 的东西。只要没有对某些全局“this”对象的引用,这就会很好。我想做类似的事情,但我可以在哪里定义“这个”是什么。

4

1 回答 1

1

我知道这个答案是 3 年后的事了,但是如果有人找到他们的方式到这个页面寻找解决方案,那么以下代码对我有用:

ScriptEngineManager factory = new ScriptEngineManager();
ScriptEngine engine = factory.getEngineByName("JavaScript"); //Your Engine Name
engine.put("this", theObject);

现在引用this将访问所需的对象。

于 2015-11-13T04:01:51.983 回答