Добавить в URI / URL в реальном времени без обновления местоположения страницы с помощью JavaScript / jQuery - PullRequest
4 голосов
/ 30 ноября 2011

У меня есть MVC-фреймворк, в котором я манипулирую DOM с помощью JavaScript и jQuery.Что в какой-то степени является немой ссылкой на этот вопрос.Через MVC, если я перехожу на

domain.com / page /

, я попадаю на страницу по умолчанию с недавней информацией, обновлениями и т. Д. Однако через MVC, если я перехожу к чему-то вроде

domain.com / page / ref1 / ref2 / ref3

Мы можем обработать это на бэкэнде, чтобы сделать то, что мы хотим.Когда его уже нет.Таким образом, мысль по этому вопросу заключается в том, могу ли я подражать поведению кросс-браузера как минимум до IE 6/7 +, Firefox 3.x +, Chrome.Под подражанием я подразумеваю манипулирование URL / URI так же, как и сам DOM.Таким образом, когда кто-то приходит и переходит к разделам с помощью методов, которыми мы манипулируем DOM, и находит то, что он хочет поделиться, все, что ему нужно сделать, это перейти к строке URL браузера, а затем скопировать и вставить ее в сообщение.

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

Ответы [ 2 ]

2 голосов
/ 30 ноября 2011

вы пробовали

window.location.replace(URL)

Эта функция не загружает никаких страниц. Если вы меняете свое текущее местоположение таким образом, когда вы перенаправляете куда-либо, ваш последний адрес будет неизменным. Он не записывает новый URL в историю браузера. было бы так, как будто вы просто даете ключ к тому, что пользователь хочет поделиться.

2 голосов
/ 30 ноября 2011

Рассматривали ли вы изменение якорей в URL? Пока на этой странице:

http://www.google.com/

Изменение URL на это:

http://www.google.com/#foo

... не будет вызывать обновление страницы. Таким образом, вы можете использовать (читать / изменять) содержимое URL после привязки все, что вам нужно, и страница не будет перезагружена Должен быть в состоянии развить эту идею.

...