2011-11-14 34 views
2

我在玩jQuery Mobile,遇到了一些(對我來說)奇怪的行爲。jQuery mobile:URL查詢字符串不變

我有一大堆的每個指向同一個頁面JQM,#otherpage鏈接,但與URL查詢字符串不同的值,比如#otherpage?q=foo#otherpage?q=bar,等等。對另一個頁面的更改工作正常,但查詢字符串在點擊之間保持不變,所以如果我首先單擊鏈接到#otherpage?q=foo,然後返回到第一頁,則後續頁面更改爲#otherpage將具有q=foo,無論當前點擊鏈接的href說。

的jsfiddle似乎並未有JQM的支持,所以我把這個範例:http://cpak.se/dump/location-search-test.html

我已經試過這在Chrome和Mac上的Safari。

我使用查詢字符串在頁面之間傳遞簡單的數據,因爲我有其他代碼掛鉤到pagechange事件,或多或少不知道早期代碼可能已經完成。如果我不能得到這個工作,我將不得不尋找另一種方式來傳遞數據...:P

乾杯!

/克里斯托弗

+0

我知道這是一個老問題,但如果你仍然有問題,我最近創建了一個[插件](https://github.com/CameronAskew/jquery.mobile.paramsHandler),它可能會幫助你。 –

回答

3

我已經找到了這個問題,因爲它確實有點奇怪。有關於這一個懸而未決的問題:https://github.com/jquery/jquery-mobile/issues/2859

大氣壓jQuery Mobile的不建議使用的查詢參數:

我們目前不支持查詢參數作爲哈希 片段的一部分,儘管這是後話這在內部經常被討論 ,並在功能請求列表中。

他們建議使用插件,如:

但是,因爲在DOM活動頁面的數據的URL的變通辦法改變,你可以檢索這與$(".ui-page-active").attr("data-url");我已經在您的網站上測試過,它給了我所有3個唯一身份驗證碼網址

+0

感謝您花時間爲我挖掘出來!我會嘗試一下「data-url」。 – cpak

0

jQuery Mobile的默認不允許傳遞查詢字符串參數,內部鏈接的網頁。退房此文檔頁面最底部(從頁面底部的第二個項目符號):http://jquerymobile.com/demos/1.0rc3/docs/pages/page-navmodel.html

的jQuery Mobile不支持查詢參數傳遞給 內部/嵌入網頁,但有兩個插件,你可以添加到 您的項目來支持此功能。有一個輕量級的page params plugin和更全面的jQuery Mobile router plugin用於backbone.js或spine.js。

+0

哦,我錯過了那部分文檔。謝謝! – cpak

4

禁用jQm似乎是在瀏覽器中正確更新url參數的最簡單解決方案。例如。在鏈接錨點中添加data-ajax="false",而不是使用$.mobile.changePage

<a href="#page?id=1" data-ajax="false"> 

在動態應用程序中預先修改href的值。