Ответ 1
Вы можете изменить хеш/якорь части URL (после #). Остальная часть URL-адреса только для чтения.
location.hash = "#value";
Можно ли переписать URL-адрес в URL-поле в браузере клиента?
Итак, когда человек нажимает на ссылку на моей странице, происходит что-то вроде ajax (например, появляется вкладка). Я хочу, чтобы url отображал действие без обновления страницы.
Возможно ли это?
Вы можете изменить хеш/якорь части URL (после #). Остальная часть URL-адреса только для чтения.
location.hash = "#value";
Когда все остальные ответили на этот вопрос, они были правы, изменить URL-адрес в javascript не удалось. В HTML5 и современных браузерах теперь используется HTML5 History API
diveintohtml5.info статья об этом. Здесь - еще одно хорошее сообщение в блоге, объясняющее эту функцию.
Отметьте caniuse.com совместимость браузера.
Существуют библиотеки, такие как History.js, которые обертывают API и pollyfill, используя hashbangs для старых браузеров.
Переписывание URL-адресов невозможно, но очень часто добавляется действие с хешем. Например, Facebook использует его широко:
http://www.facebook.com/#!/username
^
Все, что после хэша, просто привязывает данные на той же странице, которые вы можете изменить с помощью script в течение всего дня.
Более новые браузеры также предлагают событие onhashchanged, чтобы вы могли реагировать на изменение URL-адреса вместо постоянного опроса.
Единственное возможное решение - добавить якорь. Затем вы можете использовать что-то вроде reallysimplehistory, чтобы пользователь мог закладок на странице или использовать кнопку "Назад" внутри вашей страницы.
Я тоже сделал это с вкладкой в прошлом.