Как я могу заставить браузер переходить по заданному URL-адресу из апплета Java? - PullRequest
4 голосов
/ 19 марта 2009

У меня есть Java-апплет, состоящий из волшебной формы с тремя шагами. На последнем шаге пользователь может нажать кнопку «Готово». Я хочу, чтобы эта кнопка заставляла веб-браузер переходить по определенному URL-адресу.

Вопрос: Есть ли способ заставить браузер перейти на определенный URL-адрес таким образом, чтобы он работал во всех современных браузерах? Мои конкретные требования к браузеру - FF3 +, IE7 +, Safari 3+ и Opera 9+. Я использую Java 1.5.

Ответы [ 4 ]

6 голосов
/ 26 марта 2009

Из апплета вы можете просто получить контекст апплета и вызвать 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.

1 голос
/ 19 марта 2009

Вы можете запустить мастер из JavaScript и заставить апплет возвращать поток выполнения вызывающей стороне JavaScript при нажатии кнопки «Готово». Как только вы попали в JavaScript, вы можете перейти к новому местоположению, выполнив публикацию в форме или изменив свойство window.location.

В худшем случае вы можете изучить использование LiveConnect , но я бы коснулся его полюсом 10 футов.


Обновление LiveConnect

Оригинальный LiveConnect, по-видимому, по своей природе ограничен браузерами, работающими под Windows, и, вероятно, будет работать только на NN и IE. Некоторые из этих ошибок были недавно исправлены , но проблема совместимости с браузером по-прежнему будет оставаться.

0 голосов
/ 20 мая 2015
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);    
}
0 голосов
/ 19 марта 2009

Если вы используете Java 6 и выше, см. API Desktop . Это заведет браузер. Однако я не знаю, помешает ли этому модель безопасности апплета.

Кроме этого, я успешно использовал BrowserLauncher2 . Аналогичные оговорки применяются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...