jQuery mobile: строка запроса URL не изменяется - PullRequest
2 голосов
/ 15 ноября 2011

Я играю с jQuery Mobile и столкнулся с некоторым (для меня) странным поведением.

У меня есть несколько ссылок, каждая из которых указывает на одну и ту же страницу jQM, #otherpage, но с разными значениями для строки запроса URL, например, #otherpage?q=foo, #otherpage?q=bar и так далее. Изменение на другую страницу работает нормально, но строка запроса остается между щелчками, поэтому, если я сначала нажму ссылку на #otherpage?q=foo, а затем вернусь на первую страницу, все последующие изменения страницы на #otherpage будут иметь q=foo независимо от того, что говорит ссылка на текущую ссылку.

jsFiddle, похоже, не поддерживает jQM, поэтому я привел пример здесь: http://cpak.se/dump/location-search-test.html

Я пробовал это в Chrome и Safari на Mac.

Я использую строку запроса для передачи простых данных между страницами, так как у меня есть другой код, подключенный к событиям смены страниц, который более или менее не знает о том, что мог сделать предыдущий код. Если я не смогу заставить это работать, мне придется искать другой способ передачи данных ...: P

Ура!

/ Christofer

Ответы [ 3 ]

4 голосов
/ 26 ноября 2012

Отключение jQm представляется наиболее простым решением для правильного обновления параметров URL в браузере. Например. добавление data-ajax="false" в привязку ссылки и не использование $.mobile.changePage.

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

В динамическом приложении измените значение href заранее.

3 голосов
/ 15 ноября 2011

Я искал эту проблему, потому что она действительно кажется немного странной.Существует открытая проблема по этому поводу: https://github.com/jquery/jquery-mobile/issues/2859

Atm jQuery Mobile не рекомендует использовать параметры запроса:

В настоящее время мы не поддерживаем параметры запроса как часть хэшафрагмент, хотя это то, что часто обсуждается внутри страны и находится в списке запросов возможностей.

Они советуют использовать такой плагин как:*

https://github.com/azicchetti/jquerymobile-router

Однако существует обходной путь, так как URL-адрес данных активной страницы в DOM ДЕЛАЕТСЯ, вы можете получить это с помощью $(".ui-page-active").attr("data-url"); Я проверял этона вашем сайте, и он дал мне все 3 уникальных URL

0 голосов
/ 15 ноября 2011

jQuery Mobile по умолчанию не позволяет передавать параметры строки запроса на внутренние страницы. Ознакомьтесь с самой нижней частью этой страницы документации (второй маркер снизу страницы): http://jquerymobile.com/demos/1.0rc3/docs/pages/page-navmodel.html

jQuery Mobile не поддерживает передачу параметров запроса в внутренние / встроенные страницы, но есть два плагина, которые вы можете добавить к Ваш проект поддерживает эту функцию. Есть легкая страница плагин params и более полнофункциональный мобильный маршрутизатор jQuery плагин для использования с backbone.js или spine.js.

...