2010-08-01 2 views
17

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

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

ответ

12

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

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

Best Practices with Dynamic Content

-3

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

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

+2

Я не ОП, но я считаю, что полезно при изменении содержимого с помощью AJAX, а затем ваш посетитель хочет сохранить страницу, он ищет в закладки/отправить по электронной почте/и т. д. – nothrow

+0

Как сказал Йоссариан, это было одной из моих причин. Кроме того, потому что загрузка загрузки страницы меньше использует ajax, а загрузка contens лучше выглядит. –

+0

@Yossarian: Я спросил, почему он хочет использовать site.com/product, например, начальный Q был (не хеш). @Paul: если вы измените более 4-50% содержимого своей страницы, вам может потребоваться переосмыслить вашу стратегию, потому что скорость, которую вы получите при передаче страницы, будет отменена во время работы DOM :) –

1

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

15

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

Chack ссылку ... http://www.spoiledmilk.dk/blog/?p=1922

также facebook и Google с помощью этого Tric рядом Hash (#) атрибут

+0

Отлично! Для поддержки кросс-браузера вы можете использовать библиотеку, например history.js https://github.com/balupton/history.js – Pepper

+2

Похоже, что ссылка сломана ... –

7

Это возможно в HTML5. См. Демо-версию here.

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

См. Интерфейс history в формате HTML5 specification.

7

просто использовать этот один

window.history.pushState("object or string", "Title", "/new-url"); 
+0

Остерегайтесь IE <10: http: // caniuse .com/# поиск = PushState. Используйте polyfill как history.js. – Johann

Смежные вопросы