2010-08-11 2 views
1

Ниже приведены фрагменты кода на одной странице jsp, функция - вернуться на предыдущую страницу, она работает на Firefox 3.5, но не работает на IE7, в IE7 он вернется на главную страницу индекса. как увеличить его для поддержки IE7/Firefox в одно и то же время?В IE7 действие «javascript: history.back()» в JSP Перейти на главную страницу, а не предыдущую просматриваемую страницу

<%@ 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> 

ответ

2

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

вместо

history.back(); 
+1

Я изменил его с history.back() на history.go (-1), он работает как на IE7, так и на FF3.5. –

+0

Ницца ... так вот ответ, который вы искали ... –

1

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

1

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

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