# символ в URL-адресе мобильной страницы jquery - PullRequest
3 голосов
/ 11 января 2012

Почему, когда я захожу на мою мобильную страницу jQuery, скажем, page.php, она отображается нормально, но когда я захожу на ту же страницу page.php # someDetails, она просто показывает белую страницу?И как я могу это исправить?

Я использую стороннее приложение, которое перенаправляет на мою веб-страницу с добавлением # к URL-адресу ..

Ответы [ 2 ]

2 голосов
/ 11 января 2012

Редактировать: Я прошел по вашей странице, чтобы посмотреть, что происходит.

Ваше горе вызвано jQuery Mobile.Когда страница загружается, она обнаруживает это как «изменение страницы», и поскольку jQuery Mobile использует хеш (#) для эмуляции кнопки возврата для запросов AJAX, она также имеет некоторую специальную обработку для страниц, которые, по ее мнению, загружаются.с хешем.

Суть в том, что он видит загрузку страницы, решает, что он должен «отклонить» ее, и предотвращает дальнейшие действия.

Я предполагаю, что команда jQuery MobileЯ не ожидал, что кто-нибудь загрузит мобильную страницу с хешем при инициализации, так как код, похоже, предполагает, что при первой загрузке страницы его не будет.

Чтобы выполнить это самостоятельно, установите точку останова вfunction isEmbeddedPage in jquery.mobile-1.0.min.css.

Возможное решение состоит в том, чтобы каким-то образом предотвратить запуск кода jQuery Mobile при первоначальной загрузке страницы.Однако это может нарушить другие функции, которые предоставляет jQuery Mobile.

1 голос
/ 20 апреля 2012

Как говорится, получается, что jQM анализирует хэши для своих собственных целей и просто зависает, если он не может понять их при загрузке (излишне агрессивное поведение, если вы спросите меня, они должны по крайней мере запускать пользовательское событие - хотя есть проблема с высоким приоритетом , о которой сообщалось на GitHub).

Одним из решений является отключение обработки хеша jQM: перед тем, как DOM будет готов, выполните следующее:

$.mobile.hashListeningEnabled = false;

Обратите внимание, что это обязательно нарушит любую функциональную зависимость от истории заполнения jQM в браузерах, которые не поддерживают pushState истории (IE и т. Д.).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...