请教:
如何用java程序调用浏览器执行关闭tab操作?有打开浏览器的代码,但不知道怎样关闭!以下是调用浏览器打开指定的url,
//String webSite="http://www.google.cn";
private void runBroswer(String webSite) {
try {
Desktop desktop = Desktop.getDesktop();
if (desktop.isDesktopSupported()
&& desktop.isSupported(Desktop.Action.BROWSE)) {
URI uri = new URI(webSite);
desktop.browse(uri);
}
} catch (IOException ex) {
ex.printStackTrace();
} catch (URISyntaxException ex) {
ex.printStackTrace();
}
}请问如何用java程序关闭之前打开的url?请附上实现功能代码,定重谢。
如何用java程序调用浏览器执行关闭tab操作?有打开浏览器的代码,但不知道怎样关闭!以下是调用浏览器打开指定的url,
//String webSite="http://www.google.cn";
private void runBroswer(String webSite) {
try {
Desktop desktop = Desktop.getDesktop();
if (desktop.isDesktopSupported()
&& desktop.isSupported(Desktop.Action.BROWSE)) {
URI uri = new URI(webSite);
desktop.browse(uri);
}
} catch (IOException ex) {
ex.printStackTrace();
} catch (URISyntaxException ex) {
ex.printStackTrace();
}
}请问如何用java程序关闭之前打开的url?请附上实现功能代码,定重谢。
window.close()
When a function fired by an event on any object calls the close method, the window.close method is implied. HideExample<SCRIPT LANGUAGE="JScript">
function foo() {
close();}
</SCRIPT>
<BODY onclick="foo();">
Click this page and window.close() is called.
</BODY>
windowXP下Process p = Runtime.getRuntime().exec("explorer http:\\www.sina.com.cn");这样得到的Process实例p,可以调用destroy()方法杀掉进程.
/**
* J2SE 5及之前可使用以下代码<br>
*/
private void openURL(String url) {
String osName = System.getProperty("os.name");
System.out.println("###osName:" + osName);
// System.gc();
Process p = null;
int exitCode = 1; try {
if (osName.startsWith("Mac")) {// Mac OS
Class fileMgr = Class.forName("com.apple.eio.FileManager");
Method openURL = fileMgr.getDeclaredMethod("openURL",
new Class[] { String.class });
openURL.invoke(null, new Object[] { url });
} else if (osName.startsWith("Windows")) {// Windows
p = Runtime.getRuntime().exec(
"rundll32 url.dll,FileProtocolHandler " + url); // System.out.println("###p:" + p);
// System.out.println("###p.hashCode():" + p.hashCode()); exitCode = p.waitFor();
System.out.println("###exitCode:" + exitCode);
} else { // Unix or Linux
String[] browsers = { "firefox", "opera", "konqueror",
"epiphany", "mozilla", "netscape" };
String browser = null;
for (int count = 0; count < browsers.length && browser == null; count++) {
if (Runtime.getRuntime().exec(
new String[] { "which", browsers[count] })
.waitFor() == 0) {
browser = browsers[count];
}
}
if (browser == null) {
throw new Exception("Could not find web browser");
} else {
Runtime.getRuntime().exec(new String[] { browser, url });
}
}
Thread.sleep(2000);
p.destroy();
} catch (Exception ex) {
ex.printStackTrace();
}
}
用getRunTime()调用run32dll 具体代码——Runtime rt = Runtime.getRuntime();
try { rt.exec("rundll32 url.dll,FileProtocolHandler " + "http://www.163.com"); } catch (IOException e) { }
public void browse(URI uri)
throws IOException 启动默认浏览器来显示 URI。如果默认浏览器无法处理指定的 URI,则调用用于处理指定类型的 URI 的注册应用程序。正如 URI 类定义的一样,根据协议和 URI 的路径确定应用程序。 如果调用线程没有必需的权限,且它是从 applet 中调用的,则使用 AppletContext.showDocument()。类似地,如果调用线程没有必需的权限,且它是从 Java Web Started 应用程序中调用的,则使用 BasicService.showDocument()。 没有任何返回值,也就是说,一旦打开了,就失去控制了。OVER!
如果不能实现,我新追加一个问题:java1.6新增了调用js的功能,由于js是可以控制打开的url并将其关闭,
那么能否用java控制js将其打开的url关闭?如能实现请把代码贴出来分享一下。谢谢。
附js调用传入的url打开并关闭代码:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>打开指定URL的窗口并在一定的时间内自动关闭</title>
<script language="javascript">//这里声明一个根据传来的地址打开新窗口的函数
var Wind;
function newWindow(url){
Wind=window.open(url);
window.setTimeout("closeWind()",3000);
}//关闭打开的新窗口,否则提示
function closeWind(){
if(Wind) {//如果Wind对象存在
Wind.close();//调用关闭方法
Wind=null//并把值赋成null
}else{//否则,也就是
alert("去google搜索一下,再找找看能不能关闭!");
}
}
</script>
</head>
<body>
<p>
<input type="submit" name="tijiao" value="在浏览器中打开传入的页面,过3秒自动关闭" onclick="newWindow('http://www.google.cn')" />
</p>
</body>
</html>
我在API中没有找到browse这个
PS:lz的问题用脚本很容易实现
直接关闭窗口就行
使用Gecko 1.9/Firefox 3代码库
标准化的导航方法,如直接导航()、后退()、前进()以及停止()
能执行JavaScript代码。支持字符串返回值。
不同浏览器事件的标准Java监听对象
通过W3C DOM API访问浏览器的DOM(org. w3c. dom.*包)
控制台服务使你能收到关于脚本失败与其它页面问题的通知
能创建上下文独立的Java菜单代替标准的浏览器菜单
能下载文件
拥有为不同内容类型提供用户定义行为的API
追踪不同步操作的API
浏览器代理设置的配置