2013-03-26 62 views
1

我有一個具有按鈕的Web應用程序,如果點擊將轉到特定的歷史記錄。我聽說只有IE支持history.go(url),但其他瀏覽器只接受數字值。在我的情況下,history.go()將僅轉到特定頁面。 http://localhost:54187/Products/Create。即使用戶導航到不同的頁面,如果按鈕被點擊,仍然會進入「創建」歷史頁面。我需要history.go,因爲它相當於瀏覽器的後退和前進。我無法使用window.location或location.href,因爲我的應用程序要求填充數據仍然存在history.go的確切含義。如果用戶總共加載了26頁,我將如何知道這26個頁面中的哪一個是創建頁面,以便我可以創建history.go(createIndex)? window.history.length給出26但它不公開URL。history.go()如何從window.history獲取特定訪問頁面url的索引?

請幫助我如何解決我的問題。

JavaScript和HTML

<script type="text/javascript"> 
    $(document).ready(function() { 
    $('#btnGoToCreate').click(function() { 
     var createIndex = //how to know what's the index of 
     //http://localhost:54187/Products/Create from window.history? 
     history.go(createIndex); 
     }); 
    }); 
    </script> 

<input type="button" value="Go to Last Entry" id="btnGoToCreate" /> 
+0

_「我不能使用window.location或location.href,因爲我的應用程序要求填充數據仍然存在」 - 這更像是緩存而不是頁面導航到的_how_。如果您需要再次輸入用戶輸入的數據,則應將其保存到會話中,以便您可以從此處讀取。 – CBroe 2013-03-26 08:47:19

+0

@CBroe偉大的建議 – 2013-03-26 08:52:15

回答

0

不能閱讀因爲安全/隱私原因,歷史的項目。你只能訪問前面的URL,可以使用以下閱讀:

document.referrer 

您可以manipulate the browser history雖然,但也不允許你去特定的頁面在用戶的歷史記錄。

0

添加一個計數器變量來保存索引。該計數器可以存儲在cookie/sessionStorage/localStorage中。
當用戶導航到另一個頁面時,計數器自身加1,最終當用戶單擊按鈕時,可以使用window.history.go(計數器)。

BTW,計數器可以自加1,當用戶刷新頁面,以避免此問題的發生,就需要一個時間戳傳遞到下一個頁面,使用?timestamp=1231232123,並保存在cookie/sessionStorage/localStorage,如果在URL中的時間戳不同於保存在cookie/sessionStorage/localStorage中的那一個,那麼計數器可以加上1.

這是我在我的項目中的解決方案,希望能幫到你。