“window.location.href”和“window.location.hash”有啥区别?

Posted

技术标签:

【中文标题】“window.location.href”和“window.location.hash”有啥区别?【英文标题】:What is the difference between "window.location.href" and "window.location.hash"?“window.location.href”和“window.location.hash”有什么区别? 【发布时间】:2012-05-28 03:20:53 【问题描述】:

我学习了 "window.location.hash" 新的并尝试在我的 jquery 代码中而不是 "window.location.href" 并且它们都给出了相同的结果。

代码在这里:

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

它们有什么区别?

【问题讨论】:

w3schools.com/jsref/obj_location.asp 这个属性的值在不同的浏览器中可能不同。获取哈希属性的一种安全方法是使用:var hash = (location.href.split("#")[1] || ""); lea.verou.me/2011/05/get-your-hash-the-bulletproof-wayvar hash = location.hash.substring(1); 【参考方案1】:

对于像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

Read More

【讨论】:

【参考方案2】:

http://***.com/#Page 上进行测试

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

【讨论】:

【参考方案3】:

href 是网址

hash 只是 url 后面的锚

http://www.xxxxxxx.com#anchor

http://www.xxxxxxx.com#anchor是href

“#anchor”是哈希

【讨论】:

【参考方案4】:

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

【讨论】:

很确定它包含# 字符。【参考方案5】:

这是window.location.hrefwindow.location.hash之间区别的简单示例

对于网址http://www.manm.com/member/#!create

href:http://www.manam.com/member/#!create 哈希:#!create

【讨论】:

【参考方案6】:

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

【讨论】:

以上是关于“window.location.href”和“window.location.hash”有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

javascript中的BOM结构介绍

window.location.href=window.location.href 和 window.location.reload() 的区别

window.location和window.location.href的区别

“window.location.href”和“window.location.hash”有啥区别?

关于微信端不支持window.location.reload()

window.location.href和window.open的几种用法和区别