2013-07-16 56 views
1

我對jQuery和jQuery Mobile完全陌生,並且遇到了問題。我有兩個html頁面,其中一個是項目列表。每個項目鏈接到主頁面,並將?id = xxx添加到url。主要頁面讀取ID,並使用下面的代碼提供內容:jQuery Mobile:如何閱讀查詢字符串參數每次頁面加載?

 $.urlParam = function(name){ 
    var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(window.location.href); 
    return results[1] || 0; 
    } 

我然後使用

console.log($.urlParam('id')); 

第一次加載頁面的ID是正確的打印ID到控制檯。當我加載列表並選擇不同的項目時,URL中的id發生變化,但是與之前相同的id被打印到控制檯並且內容不會更新。我認爲這個問題可能與緩存有關。我試過使用不同的函數(沒有RegExp)來讀取id,但是它會產生相同的問題。

謝謝!

+0

你什麼時候調用這個'urlParam'? – krishgopinath

+0

是的,請解釋當你要求的網址。 – James

+0

在加載頁面內容的腳本開始時調用urlParam。 – user2573644

回答

0
Why don't you use session storage (if its a mobile website) on the click event of the list item store this selected id into session storage and on the main page live get it back from storage, so you need not pass using query string, generally passing from query string is not safe, and you have limitations on how much data you can pass. 
+0

謝謝,很好的建議,但我實際上通過在腳本中的函數之間傳遞變量來解決此問題,以便不需要查詢字符串參數。 – user2573644

+0

太棒了!考慮一下你有一個列表頁面和一個詳細信息頁面的情況,當你從列表導航到詳細信息頁面時,如果我們從函數傳遞參數然後在詳細信息頁面上進行刷新或重新加載細節頁面,參數值。這種情況特別發生在有移動網站時,因此我們繼續進行會話存儲,以便詳細信息頁面可以獨立獲取參數。 – Sheetal

+0

我不認爲刷新/重新加載經常發生在移動頁面上。內容每週更新一次,頁面只刷新是用戶故意這樣做的。我理解會話存儲的使用,但變量是一個更簡單的解決方案。 – user2573644

相關問題