"window.location.href"和"window.location.hash"有什么区别?(涉及IT技术)

54

我学习了 "window.location.hash",并在我的 jQuery 代码中尝试使用它,而不是 "window.location.href",结果两者都产生了相同的结果。

代码在这里:

window.location.href = ($(e.currentTarget).attr("href"));
window.location.hash = ($(e.currentTarget).attr("href"));

它们之间有什么区别?


1
http://www.w3schools.com/jsref/obj_location.asp - Evan Mulawski
该属性的值在不同的浏览器中可能会有所不同。获取哈希属性的安全方法是改用:var hash = (location.href.split("#")[1] || ""); - naXa stands with Ukraine
var hash = location.hash.substring(1); 的意思是获取当前 URL 中的哈希值,而不包括 "#" 符号。 - lowtechsun
6个回答

79

对于像 http://[www.example.com]:80/search?q=devmo#test 这样的URL:

  • hash - 返回URL中跟在 # 符号后面的部分,包括 # 符号。您可以在支持的浏览器中监听 hashchange 事件,以便在哈希值发生更改时得到通知。

Returns: #test
  • href - 返回完整的 URL。

  • Returns: http://[www.example.com]:80/search?q=devmo#test
    

    阅读更多


    11

    例如,在 http://stackoverflow.com/#Page 上进行测试。

    href = http://stackoverflow.com/#Page
    
    hash = #Page
    

    4

    3
    这里是关于window.location.hrefwindow.location.hash的简单例子:
    对于URL http://www.manm.com/member/#!create
    - href: http://www.manam.com/member/#!create - hash: #!create

    3

    hashhrefwindow.location对象的两个属性。 hash是URL中从#开始(如果没有# 则为空字符串)的部分,而href是整个URL的字符串表示。


    3
    可以肯定它包含 # 符号。 - Amir Raminfar

    3

    hash属性返回URL的锚点部分,包括#号。


    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接