1

如何在 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中的窗口关闭功能。

4

1 回答 1

0

尽管您没有提到这一点,但我希望您的 java 代码是 applet 的一部分。在这种情况下,您应该使用实时连接 API 而不是ScriptingEngineManager.

ScriptingEngineManager只运行 Rhibno - JavaScript 语言的纯 java 实现。您可以在小程序(在浏览器中运行)中使用它,也可以不使用它。您以这种方式运行的引擎完全独立于在浏览器中运行的 javascript,因此不知道浏览器将任何对象注入到其上下文中,例如windowor document

请查看实时连接文档和示例以获取更多详细信息。不久,它最初由 Netscape 技术开发,允许小程序与它们运行的​​页面进行通信。因此,包裹中包含该公司的名称。

但请注意:小程序在 10 年前就已经过时,如今已成为众所周知的死亡技术。我可以建议您仔细检查您是否确实要使用它吗?有瘦客户端替代品 - 检查它们。

于 2013-05-13T06:42:57.797 回答