需注意的 document 对象也有一个 location 属性,而且 document.location 也包含了当前文档的 URL 信息。尽管 window.location 和 document.location 代表的意思差不多,但两者还是存在一些区别:window.location 中的 location 本身是一个对象,它可以省略 window 直接使用;而 document.location 中的 location 只是一个属性,必须通过 document 来访问它。
下面来看看 location 对象的一些常用属性和方法。
1. location对象属性
location 对象的常用属性见表 1。
属性 | 描述 |
---|---|
hash | 设置或返回从井号(#)开始的URL (锚) |
host | 设置或返回主机名和当前 URL 的端口号 |
hostname | 设置或返回当前 URL 的主机名 |
href | 设置或返回完整的 URL |
pathname | 设置或返回当前 URL 的路径部分 |
port | 设置或返回当前 URL 的端口号 |
protocol | 设置或返回当前 URL 的协议 |
search | 设置或返回从问号(?)开始的 URL (查询部分) |
完整的 URL 包括了不同的组成部分。上述属性中,href 属性存放的是当前文档完整的 URL,其他属性则分别描述了 URL 的各个部分。URL 的结构如图 1 所示。
图 1:URL 的结构示意图
2. location对象方法
location对象的常用方法见表 2。
方法 | 描述 |
---|---|
assign() | 加载新的文档 |
reload() | 重新加载当前文档 |
replace() | 用新的文档替换当前文档,且无需为它创建一个新的历史记录 |
3. 访问location对象的属性和方法的方式
访问 location 对象的属性和方法的方式如下:
[window.]location.属性
[window.]location.方法(参数1,参数2,…)
【例 1】location 对象的使用。
<!doctype html> <html> <head> <meta charset="utf-8"> <title>location对象的使用</title> <script> function loadNewDoc(){ window.location.assign("http://www.baidu.com"); } function reloadDoc(){ window.location.reload(); } function getDocUrl(){ alert("当前页面的URL是:"+window.location.href); } </script> </head> <body> <input type="button" value="加载新文档" onClick="loadNewDoc()"/> <input type="button" value="重新加载当前文档" onClick="reloadDoc()"/> <input type="button" value="查看当前页面的URL" onClick="getDocUrl()"/> </body> </html>
上述脚本代码分别调用了 location 的 assign()、reload() 和 href 属性实现加载 baidu 网页、重新加载当前页面和获取当前页面的 URL。上述代码在 Chrome 浏览器中的运行结果如图 2 所示。
图 2:location 对象的应用
当单击“查看当前页面的URL”按钮时将弹出图 3 所示的对话框;
图 3:使用 location 对象获取 URL
当单击“加载新文档”按钮时,页面将跳转到 baidu 网页;当单击“重新加载当前文档”按钮时,将重新加载当前页面。
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/24028.html