2016-02-09 50 views
0

我想創建一個「建設者」頁面,用戶可以從下拉列表中選擇一個元素,並建立一個網頁的排序。我們無法訪問此信息的數據庫,所以我希望能夠保存URL中的元素,以便URL可以通過電子郵件發送或保存在電子表格中,並且腳本每次都會「寫入」頁面有人訪問它(這僅用於模型和交付目的 - 而不是生產)。jQuery追加標籤到一個URL而不刷新

我嘗試使用哈希(#),但我這樣做的時候,它給了我一個錯誤:Uncaught Error: Syntax error, unrecognized expression: #h=3&f=2

我用等號來判斷一個對象我在尋找,是哪個變種,其這就是爲什麼這會產生問題。

當我切換到使用window.location.search並在地址欄中使用問號(?)時,它工作正常,但我不知道如何更改URL(使用jquery/javascript)而無需刷新頁面辦法。

我想要的網址是www.sample.com/?h=1&f=2www.sample.com/#h=1&f=2。然後,在「構建」過程中,我希望能夠將所有不同元素及其變體添加到URL中,類似window.location.hash = window.location.hash + "a=1";window.location.hash = window.location.search + "a=1";

任何想法?

+0

的可能重複:http://stackoverflow.com/questions/3338642/updating-address-bar-with-new-url-without-hash-or-reloading-the -page – JazzCat

+0

我一直在研究,試圖找出如何獲得該網址,並繼續追加 – ntgCleaner

回答

2

這種方式應該工作。

var defaultState = { 
    current: window.location.pathname 
}; 

var requestParameters = [ 
    '?id=0', 
    '&id=1', 
    '&id=2' 
]; 

var path = window.location.pathname + requestParameters.join(""); 
window.history.pushState(defaultState, 'Title', path); 

結果:http://example.com/?id=0&id=1&id=2

+0

啊,所以你把ID推入一個數組,並加入他們形成一個字符串。我會試試這個。謝謝 – ntgCleaner

+0

精美的作品!我已經改變了一點,先將'?'推入數組中,然後不用在數組中添加'&'到id,而是使用'&加入'&'('&");'放大放大器之間的任何ID – ntgCleaner

+0

很高興這是你在找什麼,祝你有美好的一天。 – JazzCat