Как я могу перенаправить URL-адрес, на который мне указывают после нажатия кнопки «Отправить»? - PullRequest
3 голосов
/ 21 сентября 2011

Имеется HTML-форма, которая отправляется сервлету после нажатия кнопки «Отправить». После отправки сервлет перенаправляет на фиксированный URL, равный

http://siteforServlets.com/Servlet/Servlet

На этом сайте отображается отчет в формате XML, показанный ниже:

Извините, я не могу опубликовать Изображения недостаточно реп, поэтому я загрузил прямую ссылку здесь: http://img836.imageshack.us/img836/3343/sitea.png

Я не хочу, чтобы мои пользователи запутались, увидев xml. Я предпочитаю, чтобы это было пустой страницей или перенаправлением на другой URL ...

Как перенаправить URL, чтобы скрыть этот URL-адрес отчета xml?

Марк, я попробовал то, что вы сказали, но оно перенаправляет еще до загрузки формы. Вот быстрое jsfiddle, которое я сделал, чтобы продемонстрировать ваше предложение: jsfiddle.net/ujsEG/12/

1 Ответ

5 голосов
/ 21 сентября 2011

Вы можете попробовать сделать так, чтобы форма предназначалась для скрытого iframe, а затем установить атрибут onload iframe с помощью вызова javascript для window.location.href.

<script type="text/javascript">
var okToRedirect = false;
function redirect() {
    if (okToRedirect) {
        window.location.href = 'path/to/new/location';
    }
}
</script>

<form action="...some action..." target="MyIframe" onsubmit="okToRedirect = true;">
...
</form>

<iframe name="MyIframe" style="display: none;" onload="parent.redirect()"></iframe>

Когда форма публикуется, результаты отображаются внутри скрытого фрейма. Когда загрузка iframe завершится, атрибут onload запустит JavaScript, чтобы перенаправить пользователя.

Обновление

Я обновил свой ответ из-за вашего комментария. Я добавил метод javascript, который может вызывать iframe. Теперь существует глобальная переменная, которая изначально имеет значение false. Это предотвратит перенаправление первой загрузки страницы. Когда форма отправляет сообщение, событие onsubmit в форме установит для глобальной переменной okToRedirect значение true, iframe перезагрузится и вызовет метод redirect(). На этот раз произойдет перенаправление.

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