使用 ScriptEngine 从 java 调用 Javascript



我正在尝试使用scriptEngine从java打开新选项卡。

private static void openWindow(URL url) {
    String javascript = "window.open(url, '_blank').focus()";
    ScriptEngineManager manager = new ScriptEngineManager();
    ScriptEngine engine = manager.getEngineByName("js");
    engine.put("url", url);
    try{
        engine.eval(javascript);
        }
    }
    catch(ScriptException exception){
        log4j.error("Couldn't open URL in Browser: " + exception.getMessage(), exception);
    }
}

我收到以下异常:

javax.script.ScriptException: sun.org.mozilla.javascript.internal.EcmaError: ReferenceError: "window" 未定义。在第 1 行

我知道窗户不能被引用,但这里的替代方案是什么?

任何指针都会有很大帮助。

这段Java没有对浏览器的引用,因此错误地说窗口没有定义。

如果你真的想从Java与浏览器交互,你可以考虑研究Selenium Webdriver。这通常用于测试目的,但也可能满足您的需求。

要打开页面,请参阅此硒示例。

最新更新