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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了window.location.href 和self.location的区别相关的知识,希望对你有一定的参考价值。

一、指代不同

1、window.location.href:返回当前窗口在浏览器中就是完整的地址。

2、self.location:返回指定窗口在浏览器中就是完整的地址。

二、作用不同

1、window.location.href:URL 的端口部分。如果采用默认的80端口(update:即使添加了:80),那么返回值并不是默认的80而是空字符。

2、self.location:查询(参数)部分。除了给动态语言赋值以外,我们同样可以给静态页面,并使用javascript来获得相信应的参数值。


三、用法不同

1、window.location.href:除了设置 location 或 location.href 用完整的 URL 替换当前的 URL 之外,还可以修改部分 URL,只需要给 Location 对象的其他属性赋值即可。

2、self.location:表示的却是浏览器当前显示的文档的 URL(或位置)。但是 Location 对象所能做的远远不止这些,还能控制浏览器显示的文档的位置。


参考资料来源:百度百科-Location 对象

参考资料来源:百度百科-window.location

参考技术A 你从字面上就可以理解到 window 指的是当前窗口 而 self 指的是自己 在html 中 由于页面可以镶嵌页面 所以这2个就有了 区别 比如说 我有个页面A.HTML 里面嵌套了一个B.HTML 在A中使用 window.location 跳转 就把整个 页面跳转了 而在 A中镶嵌B页面的位置 使用了 self跳转 就只是把B界面跳转了 A页面其他地方没有变化 就拿 很简单的 百度搜索页面来比 你输入不同的搜索内容 变化的只是下面的内容 而搜索栏本身没有变化 就是self实现下面的跳转本回答被提问者和网友采纳

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

【中文标题】“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 和self.location的区别的主要内容,如果未能解决你的问题,请参考以下文章

获取window.location.href中传的值,并且转换成json数据使用

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

window.location.href 传参比较长怎么办

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

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

window.location各属性的值