I learned "window.location.hash" new and tried in my jquery code instead of "window.location.href" and both of them gave same results.
Code is here :
window.location.href = ($(e.currentTarget).attr("href"));
window.location.hash = ($(e.currentTarget).attr("href"));
What is the difference between them?
For an URL like http://[www.example.com]:80/search?q=devmo#test
hash return the part of the URL that follows the # symbol, including the # symbol.
You can listen for the hashchange event to get notified of changes to the hash in supporting browsers.
Returns: #test
href returns the entire URL.
Returns: http://[www.example.com]:80/search?q=devmo#test
Read More
One important difference is that window.location.hash
is urldecoded, while the fragment identifier in window.location.href
is not urldecoded. In other words:
window.location.hash.split('#')[1] != window.location.href.split('#')[1]
If the URL is http://example.com/page#3%3D3
then:
window.location.hash.split('#')[1] == '3=3'
window.location.href.split('#')[1] == '3%3D3'
In other words:
window.location.hash.split('#')[1] == decodeURIComponent(window.location.href.split('#')[1])
Test it on for example http://stackoverflow.com/#Page
href = http://stackoverflow.com/#Page
hash = #Page
href is the url
hash is only the anchor after the url
http://www.xxxxxxx.com#anchor
http://www.xxxxxxx.com#anchor is the href
"#anchor" is the hash
hash
and href
are both properties of the window.location
object. hash
is the part of the URL from the #
on (or an empty string if there is no #
), while href
is a string representation of the whole URL.
The hash property returns the anchor portion of a URL, including the hash sign (#).
Here is the simple example for difference between window.location.href
and window.location.hash
For the URL http://www.manm.com/member/#!create
:
- href:
http://www.manam.com/member/#!create
- hash:
#!create