2009-03-19 11 views
4

Ich habe ein Java-Applet bestehend aus einem Assistenten-ähnlichen Formular mit drei Schritten. Im letzten Schritt kann der Benutzer auf einen "Fertigstellen" -Button klicken. Ich möchte, dass dieser Button den Browser dazu bringt, zu einer bestimmten URL zu navigieren.Wie kann ich veranlassen, dass der Browser von einem Java-Applet zu einer bestimmten URL navigiert?

Frage: Gibt es eine Möglichkeit, den Browser zu einer bestimmten URL zu navigieren, sodass er in allen modernen Browsern funktioniert? Meine spezifischen Browseranforderungen sind FF3 +, IE7 +, Safari 3+ und Opera 9+. Ich benutze Java 1.5.

Antwort

6

Aus dem Applet können Sie einfach den Applet-Kontext abrufen und showDocument(url) anrufen.

Dies wird von der aktuellen Seite an die angegebene URL navigieren weg:

getAppletContext().showDocument(url); 

Zusätzlich können Sie einen target Parameter.

Um eine relative URL besuchen Sie verwenden können:

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

Diese arbeiten in allen wichtigen Browser seit Java-Version 1.1.

1

Sie können den Assistenten von innerhalb von JavaScript aus starten und das Applet den Ausführungsfluss an den JavaScript-Aufrufer zurücksenden lassen, indem Sie auf die Schaltfläche "Fertig stellen" klicken. Sobald Sie in JavaScript sind, können Sie dann zu einem neuen Speicherort navigieren, indem Sie entweder einen Formulareintrag ausführen oder die Eigenschaft window.location ändern.

Im schlimmsten Fall könnten Sie die Verwendung von LiveConnect untersuchen, aber ich würde es mit einem 10-Fuß-Stange berühren.


-Update auf LiveConnect-

Die ursprüngliche LiveConnect- scheint von Natur aus zu Browsern unter Windows gebunden zu sein, und wird wahrscheinlich nur auf NN und IE arbeiten. Some of those bugs have been fixed recently, aber die Browser-Kompatibilität wird weiterhin ein Problem sein.

0

Wenn Sie Java 6 und höher verwenden, finden Sie in der API Desktop. Das wird einen Browser steuern. Ich weiß jedoch nicht, ob das Applet-Sicherheitsmodell das stört.

Ansonsten habe ich BrowserLauncher2 mit Erfolg verwendet. Ähnliche Einschränkungen gelten.

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);  
}