Я либо мечтал о том, чтобы chrome (dev channel) реализовал способ обновления адресной строки через javascript (путь, а не домен) без перезагрузки страницы, или они действительно сделали это.
Тем не менее, я не могу найти статью, которую, как мне кажется, я прочитал.
Я сумасшедший или есть способ сделать это (в Chrome)?
ps Я не говорю о window.location.hash и др. Если вышеизложенное существует, ответ на этот вопрос будет неверным.
javascript
ajax
google-chrome
Дэвид Мердок
источник
источник
Ответы:
Теперь вы можете сделать это в большинстве "современных" браузеров!
Вот оригинальная статья, которую я прочитал (опубликовано 10 июля 2010 г.): HTML5: изменение URL-адреса браузера без обновления страницы .
Для более глубокого изучения pushState / replaceState / popstate (он же HTML5 History API) см. Документы MDN .
TL; DR, вы можете сделать это:
См. Мой ответ на Изменение URL-адреса без перезагрузки страницы для ознакомления с основными инструкциями.
источник
../new-url
или../../new-url
. Они, кажется, делают то, что вы ожидаете в Chrome, по крайней мере.Меняется только то, что после хеша - старые браузеры
Изменение полного URL. Chrome, Firefox, IE10 +
Выше добавит новую запись в историю, так что вы можете нажать кнопку Назад, чтобы перейти в предыдущее состояние. Чтобы изменить URL на месте без добавления новой записи в историю, используйте
Попробуйте запустить их в консоли сейчас!
источник
replaceState
было именно то, что мне нужно, спасибо за расширение оригинального ответа.history.replaceState
добавить в историю в ff 66.0b1Обновите ответ Davids, чтобы даже обнаружить браузеры, которые не поддерживают pushstate:
источник
источник