В чем разница между "window.location.href" и "window.location.hash"?
Я изучил "window.location.hash" новый и попытался в моем jquery-коде вместо "window.location.href" , и оба они дали одинаковые результаты.
Код находится здесь:
window.location.href = ($(e.currentTarget).attr("href"));
window.location.hash = ($(e.currentTarget).attr("href"));
В чем разница между ними?
Ответы
Ответ 1
Для URL-адреса, такого как http://[www.example.com]:80/search?q=devmo#test
hash возвращает часть URL-адреса, которая следует за символом #, включая символ #.
Вы можете прослушать событие hashchange, чтобы получать уведомления об изменениях в хеше в поддерживающих браузерах.
Returns: #test
href возвращает весь URL-адрес.
Returns: http://[www.example.com]:80/search?q=devmo#test
Подробнее
Ответ 2
Одно важное отличие состоит в том, что window.location.hash
является urldecoded, в то время как идентификатор фрагмента в window.location.href
не является urldecoded. Другими словами:
window.location.hash.split('#')[1] != window.location.href.split('#')[1]
Если URL-адрес http://example.com/page#3%3D3
, то:
window.location.hash.split('#')[1] == '3=3'
window.location.href.split('#')[1] == '3%3D3'
Другими словами:
window.location.hash.split('#')[1] == decodeURIComponent(window.location.href.split('#')[1])
Ответ 3
Проверьте его, например, http://stackoverflow.com/#Page
href = http://stackoverflow.com/#Page
hash = #Page
Ответ 4
href - это URL
хеш - это только привязка после URL
http://www.xxxxxxx.com#anchor
http://www.xxxxxxx.com#anchor - это href
"# anchor" - хеш
Ответ 5
hash
и href
- оба свойства объекта window.location
. hash
является частью URL-адреса из #
on (или пустой строки, если нет #
), а href
- строковое представление всего URL-адреса.
Ответ 6
Свойство hash возвращает опорную часть URL-адреса, включая знак хеша (#).
Ответ 7
Вот простой пример разницы между window.location.href
и window.location.hash
Для URL http://www.manm.com/member/#!create
:
- href:
http://www.manam.com/member/#!create
- hash:
#!create