Управление / изменение адресной ссылки - PullRequest
0 голосов
/ 17 января 2011

Я вне своих собственных "идей", проходящих через это.

У меня есть просмотрщик альбомов. Когда вы нажимаете «Далее», я хочу, чтобы адресная панель висела рядом с ним, например, если вы начинаете с? Photoid = 1, и нажимаете «Далее» (добавляется следующее изображение и прочее), а затем я хочу сказать «photoid = 2.

».

Теперь я не могу сказать, что? Photoid = 2 без изменения / манипуляции, и это невозможно без HTML5.

Я сделал скрипт в HTML5, который отлично работает, но тогда мне нужно позаботиться о тех, у кого нет HTML5 (только chrome, ff4 и т. Д. Поддерживает html5) Сделал скрипт из этого (https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history)

Я думал добавить # photoid = 2, так что? Photoid = 1 # photoid = 2, а затем проверить, есть ли что-нибудь в #, затем использовать это вместо $ _GET .. Но, очевидно, вы не можете сделать это, поскольку # на стороне клиента обрабатывается и никогда не отправляется на сервер.

Так что мне тогда делать?

Любые предложения, пожалуйста, чтобы обойти это? Я проверил фейсбук, что они сделали с пользователями IE, и я мог слышать, что он «щелкнул» (раздражающий звук щелчка в IE) дважды ... первый должен был перейти к следующей картинке, второй звук щелчка изменил адресную строку ?! (как?).

А потом я тоже подумал, эй, html5 поддерживается только в ff4, и я получил ff3.6, и они манипулируют адресной строкой URL при просмотре фотографий альбома, точно так же, как я хотел (и что я написал но работает только в Chrome и ff4 ..?). Как они могли это сделать?

Ответы [ 2 ]

1 голос
/ 17 января 2011

Хеш - единственный способ изменить строку URL без автоматического обновления страницы, на которой вы находитесь.Вот почему это якорный тег (хеш) исторически.Все остальное говорит вашему браузеру перейти на другую страницу.Если вы не хотите, чтобы он пересылался, добавьте хеш, а затем прочитайте его с помощью javascript и сделайте так, как вы хотите.Это легко сделать с помощью jQuery, или вы можете покопаться в SWF-адресе Asual js library или Плагин jQuery Hash Tag Listener , если вы хотите использовать кнопки браузера «назад / вперед» для просмотра истории.состояния.

0 голосов
/ 17 января 2011

Я не совсем уверен, правильно ли вы поняли, что вы правы, но вот что я придумал для аналогичной проблемы.

Почему бы вам не установить URL, отредактировав location.hash, как вы сказали, чтобы он выглядел примерно так: www.mydomain.com / photos / # photoid = 2 .

Теперь, когда кто-то вызывает этот URL, браузер попытается загрузить www.mydomain.com/photos/ и получит необходимую разметку, но не фотографию, и теперь вы можете прочитать location.hash (который вернет photoid = 2) и загрузите изображение через AJAX, отправив запрос на сервер с указанием пути «www.mydomain.com/photos/» + location.hash

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