Изменение URL без перезагрузки страницы

17

Я хотел бы узнать, можно ли изменить содержимое URL-адреса в браузере без перезагрузки страницы?

Я использую jQuery и Ajax для загрузки новых частей моей страницы. Когда я выбираю «продукт один», прямая ссылка будет mysite.com/product1 , а для «product two» будет mysite.com/product2 , но я не хочу перезагружать сайт на эти страницы.

    
задан Paul Peelen 01.08.2010 в 10:22
источник

7 ответов

12

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

У css-tricks.com есть отличный скринкаст, посмотрите на:

Лучшие практики с динамическим контентом

    
ответ дан Sarfraz 01.08.2010 в 10:25
источник
15

теперь возможно с HTML_5 ..

chack this link ... Ссылка

также facebook и google, используя этот трюк рядом с атрибутом Hash (#)

    
ответ дан Pavel 03.04.2011 в 11:58
источник
  • Отлично! Для поддержки кросс-браузера вы можете использовать библиотеку, например history.js github.com/balupton/history.js –  Pepper 08.07.2011 в 21:09
  • Похоже, что ссылка сломана ... –  Tim Martin 07.11.2016 в 17:10
7

просто используйте этот

window.history.pushState("object or string", "Title", "/new-url");
    
ответ дан naveen 18.12.2012 в 06:13
источник
  • Остерегайтесь IE <10: caniuse.com/#search=pushstate. Используйте polyfill как history.js. –  Johann 24.02.2015 в 23:31
7

Это возможно в HTML5. См. Демонстрацию здесь .

Вы можете изменить URL-адрес на другой URL-адрес в том же домене, но не можете изменить домен по соображениям безопасности.

Подробнее см. в интерфейсе history в спецификации HTML5 .     

ответ дан Sparky 01.07.2012 в 08:05
источник
1

Вы CAN выполните это. Хотя, вероятно, вам понадобится современный браузер. Посмотрите на эту страницу: Ссылка , созданная командой Google Chrome (я использовал Chrome 9 для ее чтения). Изменение страниц не перезагружает всю веб-страницу, а изменяет URL.

    
ответ дан Attila O. 20.11.2010 в 14:12
источник
1

Да, возможно использование API истории HTML5. Проверьте эту страницу и этот пример     

ответ дан Manolis Georgopoulos 25.07.2012 в 16:03
источник
-3

Вы не можете. Только если вы измените хеш, как вам сказали sAc.

Но я могу спросить, ПОЧЕМУ?     

ответ дан Ionuț Staicu 01.08.2010 в 10:27
источник
  • Я не ОП, но я считаю это полезным, когда вы меняете свой контент через ajax, а затем ваш посетитель хочет сохранить страницу, на которую он смотрит, на закладки / отправлять по электронной почте / и т. д. –  nothrow 01.08.2010 в 10:43
  • Как сказал Йоссариан, это было одной из моих причин. Кроме того, потому что загрузка загрузки страницы меньше использует ajax, а загрузка contens лучше выглядит. –  Paul Peelen 01.08.2010 в 21:43
  • @Yossarian: Я спросил, почему он хочет использовать site.com/product, например, начальный Q был (не хеш). @Paul: если вы измените более 4-50% содержимого вашей страницы, вы можете пересмотреть свою стратегию, потому что скорость, которую вы получите при переходе на страницу, будет отменена временем работы DOM :) –  Ionuț Staicu 02.08.2010 в 08:18
  • Неверный ответ. В HTML5 это можно сделать. –  sasa 03.04.2011 в 12:49
  • @Sasa, согласитесь. Но постарайтесь сделать это в IE9 :) –  Ionuț Staicu 07.04.2011 в 10:18