JavaScript window.location对象

前端技术 2023/09/09 JavaScript

经常使用window.location,它的结构总是记不住,简单梳理下,方便以后查询。

示例
URL:http://b.a.com:88/index.php?name=kang&when=2011#first

属性 含义
protocol: 协议 \"http:\"
hostname: 服务器的名字 \"b.a.com\"
port: 端口 \"88\"
pathname: URL中主机名后的部分 \"/index.php\"
search: \"?\"后的部分,又称为查询字符串 \"?name=kang&when=2011\"
hash: 返回\"#\"之后的内容 \"#first\"
host: 等于hostname + port \"b.a.com:88\"
href: 当前页面的完整URL \"http://www.a.com:88/index.php?name=kang&when=2011#first\"

window.location和document.location互相等价的,可以交换使用

location的8个属性都是可读写的,但是只有href与hash的写才有意义。例如改变location.href会重新定位到一个URL,而修改location.hash会跳到当前页面中的anchor(<a id=\"name\">或者<div id=\"id\">等)名字的标记(如果有),而且页面不会被重新加载

注意
URL:http://b.a.com:88/index.php?name=kang&how=#when=2011#first

search: \"?name=kang&how=\" 第一个\"?\"之后
hash: \"#when=2011#first\" 第一个\"#\"之后的内容
search:\"?name=kang&how=\"第一个\"?\"之后
hash:\"#when=2011#first\"第一个\"#\"之后的内容

方法

location.assign( url )
location.assign(\'http://www.baidu.com\'); 等同于 window.location = \'http://www.baidu.com\'
这种方式会讲新地址放到浏览器历史栈中,意味着转到新页面后“后退按钮”仍可以回到该页面。
location.replace( url )
与assign方法一样,但会从浏览器历史栈中删除本页面,也就是说跳转到新页面后“后退按钮”不能回到该页面。目前IE、Chrome只是简单的跳转,只有Firefox会删除本页面的历史记录。
location.reload( force )
重新载入当前页面。force为true时从服务器端重载;false则从浏览器缓存中重载,默认值false。

本文地址:https://www.stayed.cn/item/25136

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。