2013-05-21 38 views
-1

我最近發佈了一個關於我的問題here的問題。location.replace刪除當前頁面的歷史記錄而不重定向?

當我點擊一個提交按鈕或一個鏈接時,我不希望用戶點擊按鈕或鏈接的頁面的歷史記錄在瀏覽器中記錄。

我收到了一個使用history.pushState()的建議。但我不熟悉這個功能,我迫切需要解決方案來工作。

我還不確定該怎麼做。但任何人都可以建議我是否可以用它來解決我的問題。

<input type="submit" onclick="location.replace(this.href); return false;"/> 

<a href="foo.jsp" onclick="location.replace(this.href); return false;">Continue</a> 

例子:我有一個頁面bar.html其中有一個環節<a href="foo.html">Foo</a>。當用戶點擊該鏈接時,應將其重定向到foo.html,並且不應記錄瀏覽器歷史記錄bar.html,以便用戶不能使用BACK按鈕返回此頁面。

編輯:另外我該如何強制瀏覽器不要在緩存中存儲某個頁面,所以下次用戶訪問時,瀏覽器會請求服務器尋找頁面。

+0

如果你不熟悉它,請閱讀它,嘗試一些東西,並讓我們知道它是如何發生的。 https://developer.mozilla.org/en-US/docs/Web/Guide/DOM/Manipulating_the_browser_history – Ian

+0

我嘗試過'window.history.go(-1)'和其他一些東西,但我不知道這是否可以完成。 –

回答

0

對於JS chnage頁面,使用如下代碼:

<a href="foo.jsp" onclick="location.href=this.href; return false;">Continue</a> 

,但我不肯定它的歷史的工作。

+0

'replace()'確實刪除了歷史記錄..但是我無法完成它的工作。我不熟悉JavaScript。所以我堅持這一點。 –

+0

替換是字符串的方法,位置是對象,不是字符串 – Eugene

+0

'replace()'也可以與'location'一起使用。 [請參閱此](http://www.w3schools.com/jsref/met_loc_replace.asp) –

0

下面是一個工作示例:

文件:a.html

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title>A</title> 
</head> 
<body> 
    <h1>A</h1> 
    <a href="b.html">B</a> 
</body> 
</html> 

文件:b.html

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title>B</title> 
    <script> 
     window.location.replace('c.html'); 
    </script> 
</head> 
<body> 
    <h1>B</h1> 
    <a href="c.html">C</a> 
</body> 
</html> 

文件:c.html

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title>B</title> 
</head> 
<body> 
    <h1>C</h1> 
</body> 
</html> 
相關問題