В IE7 действие «javascript: history.back ()» в JSP возвращает обратно на главную страницу, а не на предыдущую просмотренную страницу - PullRequest
1 голос
/ 11 августа 2010

Ниже приведены фрагменты кода на одной странице jsp, функция - вернуться на предыдущую страницу, она работает на Firefox 3.5, но не работает на IE7, на IE7 - на главную страницу индекса. как улучшить его для поддержки IE7 / Firefox одновременно?

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title></title>
<link rel='stylesheet' href="/css/main.css">
</head>
<body>

<div id="id1">

    <h2 class="centered">title</h2>

    <html:errors/>

    <p class="centered">
        <form action="javascript:history.back()">
            <input type="submit" value='back'>
        </form>
    </p>
</div>

</body>
</html>

Ответы [ 3 ]

2 голосов
/ 11 августа 2010

Я предпочитаю использовать

history.go(-1);

вместо

history.back();
1 голос
/ 11 августа 2010

Не используйте JavaScript для этого. Просто дайте JSP / Servlet запомнить предыдущую страницу и вместо этого введите ее URL в <form action>. Вы можете получить URL запроса по HttpServletRequest#getRequestURL().

Или, лучше , отобразите ошибки на той же странице , что и в исходной форме. Таким образом, вам не нужно беспокоить конечного пользователя, чтобы он запомнил все ошибки, прежде чем предпринимать дополнительные действия, чтобы вернуться на страницу без сообщений об ошибках. Да, это плохой пользовательский опыт.

1 голос
/ 11 августа 2010

Держу пари, что вы используете приложение AJAX.Проблема в том, что IE7 не обновляет стек истории при изменениях хеша или каких-либо действиях AJAX в этом отношении.Хотя есть способы обойти это, я лично рекомендую http://www.mikage.to/jquery/jquery_history.html

...