如何使浏览器从Java小程序导航到给定的URL?

时间:2009-03-19 04:55:31

标签: java cross-platform applet cross-browser

我有一个Java applet,它包含一个类似向导的表单,包含三个步骤。在最后一步,用户可以单击“完成”按钮。我希望该按钮能够使Web浏览器导航到特定的URL。

问题:有没有办法让浏览器导航到特定的网址,以便它可以在所有现代浏览器中使用?我的具体浏览器要求是FF3 +,IE7 +,Safari 3+和Opera 9+。我使用的是Java 1.5。

4 个答案:

答案 0 :(得分:6)

您可以从applet获取applet上下文并调用showDocument(url)

这将从当前页面导航到指定的URL:

getAppletContext().showDocument(url);

此外,您可以传递target参数。

要访问您可以使用的相对网址:

URL url = new URL(getCodeBase().getProtocol(),
                          getCodeBase().getHost(),
                          getCodeBase().getPort(),
                          "/next.html");
getAppletContext().showDocument(url);

自Java 1.1版以来,这些工作在每个主流浏览器中都有用。

答案 1 :(得分:1)

您可以在JavaScript中启动向导,并让applet在单击“完成”按钮后将执行流程返回给JavaScript调用者。一旦使用JavaScript,您就可以通过执行表单或更改window.location属性来导航到新位置。

在最糟糕的情况下,您可以检查LiveConnect的使用情况,但我会用10英尺的极点触碰它。


LiveConnect上的更新

原始的LiveConnect似乎受到在Windows上运行的浏览器的限制,并且可能仅适用于NN和IE。 Some of those bugs have been fixed recently,但浏览器兼容性仍将是一个问题。

答案 2 :(得分:0)

如果您使用的是Java 6及更高版本,请参阅Desktop API。这将推动浏览器。但是我不知道applet安全模型是否会干扰这一点。

除此之外,我已成功使用BrowserLauncher2。类似的警告也适用。

答案 3 :(得分:0)

String googleURL = "https://www.google.com/";

try {
   java.awt.Desktop.getDesktop().browse(java.net.URI.create(googleURL));    
}
catch(IOException ex) {    
    Logger.getLogger(UI.class.getName()).log(Level.SEVERE,null, ex);    
}