Ниже приведены фрагменты кода на одной странице 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>
1
Emre He 11 Авг 2010 в 10:11

3 ответа

Лучший ответ

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

history.go(-1);

Вместо того

history.back();
2
Garis M Suero 11 Авг 2010 в 06:15

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

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

1
BalusC 11 Авг 2010 в 11:38

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

1
Robert 11 Авг 2010 в 06:15