代码之家  ›  专栏  ›  技术社区  ›  William Brendel

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

  •  4
  • William Brendel  · 技术社区  · 17 年前

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

    问题: 有没有一种方法可以使浏览器导航到一个特定的URL,这样它就可以在所有现代浏览器中工作?我的特定浏览器要求是FF3+、IE7+、Safari 3+和Opera 9+。我使用的是Java 1.5。

    4 回复  |  直到 11 年前
        1
  •  6
  •   Pool    17 年前

    从applet中,您可以简单地获取applet上下文并调用 showDocument(url) .

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

    getAppletContext().showDocument(url);
    

    此外,您还可以通过 target 参数。

    要访问相对URL,可以使用:

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

    这些工作在Java版本1.1以来的每一个主要浏览器中都有。

        2
  •  1
  •   Vineet Reynolds    17 年前

    您可以从javascript中启动向导,让小程序在单击“完成”按钮时将执行流返回给javascript调用程序。在使用javascript之后,您可以通过执行表单发布或更改window.location属性导航到新位置。

    在最坏的情况下,您可以检查 LiveConnect 但是我会用一根10英尺长的杆子碰它。


    LiveConnect上的更新

    最初的LiveConnect似乎在本质上局限于运行在Windows上的浏览器,并且可能只在NN和IE上工作。 Some of those bugs have been fixed recently 但是浏览器兼容性仍然是一个问题。

        3
  •  0
  •   Brian Agnew    17 年前

    如果使用Java 6及以上,请参阅 Desktop 应用程序编程接口。这将驱动浏览器。但是,我不知道applet安全模型是否会干扰这一点。

    除此之外,我还用过 BrowserLauncher2 成功。同样的警告也适用。

        4
  •  0
  •   CubeJockey Marco    11 年前
    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);    
    }