location
对象其实是window
对象的子对象。可以 这样使用:window.location
,但是使用的时候一般省略window
。
location
是最有用的 BOM
对象之一,它提供了与当前窗口中加载的文档有关的信息,还提供了一些导航功能。
应用:window.location
对象用于获得当前页面的地址 (URL
),并把浏览器重定向到新的页面。
一. location
对象的常用属性
属性 | 描述 |
---|---|
host | 设置或返回主机名和当前 URL 的端口号。 |
hostname | 设置或返回当前 URL 的主机名。 |
href | 设置或返回完整的 URL。 |
pathname | 设置或返回当前 URL 的路径部分。 |
port | 设置或返回当前 URL 的端口号。 |
protocol | 设置或返回当前 URL 的协议。 |
search | 设置或返回从问号 (?) 开始的 URL(查询部分)。 |
<script type="text/javascript">
// http://192.168.1.100:8080/JsTest/html/demo2.html?user=lisi&pwd=aaa
document.write("protocol: " + location.protocol + "<br />"); // 协议
document.write("hostname: " + location.hostname + "<br />"); //主机名
document.write("host: " + location.host + "<br />"); //主机和端口
document.write("port: " + location.port + "<br />"); //端口
document.write("pathname: " + location.pathname + "<br />"); // 路径名
document.write("search: " + location.search + "<br />"); // 查询参数
document.write("href: " + location.href + "<br />"); //完整url
</script>
二. location
常用方法
属性 | 描述 |
---|---|
assign(url) | 加载新的文档。 |
reload(reforce) | 重新加载当前文档。 |
replace(newURL) | 用新的文档替换当前文档。 |
assign(newUrl)
: 加载新的文档。<button onclick="openNewUrl();">打开xyxyxy首页</button> <script type="text/javascript"> function openNewUrl () { location.assign("http://www.atguigu.com/"); } </script>
replace(reforce)
: 方法不会在History
对象中生成一个新的记录。当使用该方法时,新的URL
将覆盖History
对象中的当前记录。按下回退键的不会返回到刚才的网页。<button onclick="replaceDoc();">替换当前网页</button> <script type="text/javascript"> function replaceDoc () { location.replace("http://www.atguigu.com/"); } </script>
reload([force]) 方法用于重新加载当前文档。
参数force可选,可以为true。
如果该方法没有规定参数,或者参数是
false
,它就会用HTTP
头If-Modified-Since
来检测服务器上的文档是否已改变。如果文档已改变,
reload()
会再次下载该文档。如果文档未改变,则该方法将从缓存中装载文档。如果把该方法的参数设置为
true
,那么无论文档的最后修改日期是什么,它都会绕过缓存,从服务器上重新下载该文档。总结:有参为true时,从服务器重新下载,无参从缓存中重新加载
注意:reload()调用之后其后的代码有可能执行有可能不执行,所以一般放在最后
<button onclick="reloadCurrrent();">重写加载当前网页</button> <script type="text/javascript"> function reloadCurrrent () { location.reload(true); } </script>