如何在Java代码中使用Javascript函数关闭Windows资源管理器弹出窗口?
我必须在我的 java 代码中关闭 Windows 资源管理器弹出窗口。我正在使用 javascript 函数 window.close()
来关闭它,因为此窗口弹出窗口正在破坏我的循环。
这是一段代码:
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("JavaScript");
String script = "function winClose() {"+"var close_result = window.parent.close();"+"" +"document.getElementById('close_result').value = close_result;"+"console.log(\"change the box value\");}";
engine.eval(script);
Invocable inv = (Invocable) engine;
inv.invokeFunction("winClose", "Window close!!" );
但是它给了我一个异常,即window
未定义。
其实我从来没有在Java代码中使用过Javascript。所以请帮我解决 Javascript 中的窗口关闭功能。
最佳答案
虽然你没有提到这一点,但我希望你的java代码是applet的一部分。在这种情况下,您应该使用实时连接 API,而不是 ScriptingEngineManager。
ScriptingEngineManager
仅运行 Rhibno - JavaScript 语言的纯 java 实现。您可以在小程序(在浏览器中运行)中使用它,也可以不使用它。您以这种方式运行的引擎完全独立于运行到浏览器中的 JavaScript,因此不知道浏览器注入(inject)到其上下文中的任何对象,例如 window
或 document
。
请查看live connect文档和示例以获取更多详细信息。不久它最初是由 Netscape 技术开发的,允许小程序与它们运行的页面进行通信。因此,包装中包含该公司的名称。
但请注意:小程序在大约 10 年前就已经过时了,并且如今已成为众所周知的死亡技术。我可以建议您仔细检查一下您是否确实想使用它吗?有瘦客户端替代方案 - 检查它们。
关于java - 使用 Java 代码中的 Javascript 函数关闭 Windows 资源管理器弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16516018/