1. Содержит#
Для чего нужен URL?
Включать#
URL-адрес символа является URL-адресом фрагмента.#
Указывает местоположение на веб-странице.
name
соответствие значения свойстваprint
из<a>
Этикетка. который:<a name="print"></a>
,или
id
совпадение атрибутовprint
из<a>
Этикетка. который<a id="print"></a>
После совпадения браузер прокручивает раздел в верхнюю часть видимой области.
2. Http запрос не включает#
#
Работает только в браузере, на сервер не влияет. Таким образом, http-запрос не будет включать#
.
Посетите URL-адрес ниже
http://www.example.com/index.html#print
Фактический запрос, сделанный браузером
GET /index.html HTTP/1.1
Host: www.example.com
3. #
Все следующие символы используются браузерами в качестве позиционных идентификаторов.
При отправке формы, если символ отправки имеет#
символ, следующие параметры будут усечены.
4. Модификация#
Не вызывает перезагрузку страницы, но изменяет историю браузера
location.href += '#caper'; //页面不会刷新
Браузер прокручивается до новой позиции, но не перезагружает всю страницу.
Однако это изменяет запись браузера, мы можем передать браузер上一页
кнопку, чтобы вернуться в исходное положение.
Эта функция очень полезна для одностраничных приложений.
5. Доступ к javascript можно получить черезwindow.location.hash
прочитать или изменить#
6. Веб-паук Google по умолчанию игнорирует содержимое после #.
Веб-паук Google отвечает за сканирование содержимого веб-страниц, а также ссылок на веб-страницах, которые станут частью поискового индекса Google. Веб-паук сканирует и анализирует HTML, но, поскольку он не является программой браузера и не имеет движка javascript, javascript, используемый для загрузки и отображения контента на странице, не выполняется. Поэтому символы после # будут игнорироваться веб-пауками и захватывать только содержимое до #, например:
http://www.cnblogs.com/#casper
http://www.cnblogs.com/#chyingp
Это невыгодно как для разработчиков, так и для поисковых систем: контент (приложения), над созданием которых упорно трудились первые, имеет меньше возможностей для доступа, а вторые теряют возможность дальнейшего обогащения индекса контента, особенно когда ajax-приложений становится все больше и больше. сегодня все больше и больше.
Хеш-взрыв решения
Просто измените # на #!, реализация примерно следующая: когда веб-паук встречает #!, он автоматически#!identifier
Превратиться в_escaped_fragment_=identifier
параметры формы. но:
- Буду
#
изменить на!#
Скажите веб-пауку: мы поддерживаем это решение:hash bang
- Соответственно, наше приложение также должно иметь соответствующие возможности поддержки.
escaped_fragment=casper
Запрос GET должен предоставлять соответствующий веб-контент.
7. событие onhashchange
Это новое событие HTML 5, которое запускается при изменении значения #. IE8+, Firefox 3.6+, Chrome 5+, Safari 4.0+ поддерживают это событие.
Есть три способа его использования:
window.onhashchange = func;
<body onhashchange="func();">
window.addEventListener("hashchange", func, false);