2011-11-14 85 views
1

頁我有兩個JSP頁面:page1.jsppage2.jsp如何避免包括瀏覽歷史

page1.jsp輸出,在一些circunstances,可能是:

<a href="page2.jsp" id="hiddenlink" style="display:none;" >not displayed</a> 
<script>this.location.href=document.getElementById("hiddenlink").href;</script> 

之所以這樣做重定向在這個奇怪的方法是,因爲有在重寫所有鏈接的URL中的Web應用程序層(過濾器)成不可讀的字符串。瀏覽器會得到類似<a href="_YerwfwTWEf5YH34njtyRX"...>的東西。

在這種情況下,有沒有辦法(一元或頭或其他),以避免page1.jsp被存儲在瀏覽器的歷史?

感謝

回答

2

的唯一方法是通過JavaScript使用location.replace。任何其他方法(點擊鏈接,重定向等)都會將新條目添加到歷史記錄中。

+0

我想試試,我沒有意識到「替換」方法。 –

0

取而代之的是:

this.location.href=document.getElementById("hiddenlink").href; 

使用此替換瀏覽器歷史記錄當前頁面所以只有page2.jsp將成爲歷史:

window.location.replace(document.getElementById("hiddenlink").href); 
+0

應該指出的是,任何人只要有JS禁用仍然有原來的頁面在他們的歷史 – Matt

+0

如果JS被禁用,在問題中使用也不會在所有的工作重定向。問題中使用的客戶端重定向機制需要javascript。沒有javascript,頁面將是page1.jsp,歷史將顯示該頁面。 – jfriend00

+0

是的,JS會「在那裏」對我來說,所以這不是一個問題。謝謝你的支持 –