2015-10-14 141 views
1

我嘗試更改頁面的網址而無需重新加載頁面。如果我嘗試在控制檯URL這個變化:更改網址而無需重新加載頁面

if (localStorage.getItem('product') !== null) { 
    storedVariable = localStorage.getItem('product'); 
    url = window.location.href; 
    url += '?product=' + storedVariable; 
} 
window.history.pushState("", "", url); 

但是,當我把這個代碼到谷歌標籤管理器我的網頁的URL是默認的。我該如何解決它?

+0

http://stackoverflow.com/a/12446376 – Piggy

回答

0

也許涉及:mdn History_API

pushState的()有三個參數:一個狀態對象,一個標題(這是目前忽略),和(任選地)一個URL。讓我們來看看這三種參數的詳細信息:

  • 狀態對象 - 狀態對象是一個與()由pushState的創建新的歷史條目相關的JavaScript對象。只要用戶導航到新狀態,就會觸發popstate事件,並且事件的state屬性包含歷史記錄條目狀態對象的副本。

    狀態對象可以是任何可以序列化的對象。由於Firefox會將狀態對象保存到用戶的磁盤,以便在用戶重新啓動瀏覽器後可以恢復它們,所以我們在狀態對象的序列化表示上強加了640k字符的大小限制。如果你將一個狀態對象的序列化表示大於這個pushState(),該方法將拋出一個異常。如果您需要更多空間,建議您使用sessionStorage和/或localStorage。

+0

對不起,我不知道谷歌標籤管理器,但也許通過它直接提供的網址是什麼? – Anonymous0day

相關問題