1

我正在尝试使用 scriptEngine 在 java 中调用文档这是我的代码

     ScriptEngineManager scriptEngineManager=new ScriptEngineManager();
     ScriptEngine scriptEngine=scriptEngineManager.getEngineByName("nashorn");
    scriptEngine.eval("function func(){" +
    "document.location.href=someUrl;" +
                  "var text=document.getElementsByTagName('textarea')[0];"}"
                    );
            Invocable invocable= (Invocable) scriptEngine;
            ((Invocable) scriptEngine).invokeFunction("func");

它抛出一个异常

javax.script.ScriptException: ReferenceError: "document" is not defined in <eval> at line number 1
4

1 回答 1

2

Java 中的脚本引擎提供了执行 Javascript 代码的能力,但不提供对浏览器的仿真。

document,window和其他对象由浏览器定义,但 ECMAScript 规范 ( http://www.ecma-international.org/ecma-262/5.1/#sec-15 ) 不强制要求存在。

于 2016-03-02T10:24:17.730 回答