Перенаправить / Обновить идентификатор фрагмента - PullRequest
2 голосов
/ 04 мая 2009

Я использую фреймворк iUI для создания сайта. Если вы не знакомы с этим, у вас есть одна страница, состоящая из элементов div, и вы перемещаетесь между пользователями с помощью идентификаторов фрагментов.

Проблема в том, что если ваш пользователь добавляет контент, он не виден, пока не обновится. В моем случае они добавляют данные в список с помощью поста jquery, но, как я уже сказал, они ничего не видят до обновления, а после того, как вы выполните обновление, он переходит в родительский div, поскольку #fragment потерян.

Итак, мне удалось заставить страницу перейти на mywebsite.com/#_fragment после обновления с помощью window.location = mywebsite.com/#_fragment, но она фактически не перезагружает страницу.

У кого-нибудь есть подсказки, как обновить страницу до фрагмента?

Ответы [ 2 ]

7 голосов
/ 04 мая 2009

Идентификаторы фрагмента URI только на стороне клиента и не отправляются на сервер, т. Е. Если вы просматриваете заголовок HTTP-запроса, вы не увидите #_fragment. Кроме того, внесение изменений в URI, которые изменяют только фрагмент, не вызовет никаких событий DOM.

Хотя существуют обходные пути, такие как использование вызова setInterval () для активного мониторинга свойства document.location.hash, проще всего просто изменить строку запроса arg. Например, вместо:

window.location = mywebsite.com/#_fragment

включает компонент строки запроса, такой как:

window.location = mywebsite.com/?refresh=1#_fragment

Наличие «? Refresh = 1» (или любой другой пары ключ / значение) приведет к тому, что браузер сделает запрос к серверу, сохранив идентификатор #hash.

Смотрите здесь для получения дополнительной информации об объекте местоположения JS: http://docs.sun.com/source/816-6408-10/location.htm

1 голос
/ 04 мая 2009

Я полагаю, что вы будете использовать iUI для создания дружественного для iPhone веб-приложения. Я не уверен, что вы уже оценили iWebkit на то же самое или нет. Я посмотрел на iUI и iWebkit и обнаружил, что iWebkit гораздо более функциональный, стабильный и простой в реализации.

...