BOM(浏览器对象模型)中最有用的对象之一就是location,它是window对象和document对象的属性。
一、location对象属性 | |
href | 返回完整的URL(是一个可读可写的字符串) |
search | 返回一个URL的查询部分 假设URL为http://www.runoob.com/submit.htm?key=12 console.log(location.search) 输出结果为?key=12 |
hash | 返回一个URL的锚部分 假设URL为http://www.runoob.com/submit.htm#part1 console.log(location.hash) 输出结果为#part1 |
protocol | 返回一个URL协议 假设URL为http://www.runoob.com/submit.html console.log(location.protocol) 输出结果为http: |
host | 返回一个URL的主机名和端口 假设URL为http://www.runoob.com/submit.html console.log(location.host) 输出结果为www.runoob.com |
hostname | 返回URL的主机名 假设URL为http://www.runoob.com/submit.html console.log(location.hostname) 输出结果为www.runoob.com |
port | 返回一个URL服务器使用的端口号,默认端口号是80,无需指定。 |
pathname | 返回的URL路径名 假设URL为http://www.runoob.com/js/submit.html console.log(location.pathname) 输出结果为/js/submit.html |
hash:
hash属性是一个可读可写的字符串(读取时,可以用来判断网页状态是否改变;写入时,则会在不重载网页的前提下,创造一条访问记录历史记录。),该字符串是URL的锚部分(从#号开始的部分)
hash语法:location.hash
hash实例:我的作者管理系统,主要功能有三个:普通搜索、高级搜索、后台管理,我分别给它们分配一个hash值:#search、#advsearch、#admin,在页面初始化的时候,通过window.location.hash来判断用户需要访问的页面,然后通过javascript来调整显示页面。比如:
var hash;
hash=(!window.location.hash)?"#search":window.location.hash;
window.location.hash=hash;
//调整地址栏地址,使前进、后退按钮能使用
switch(hash){
case "#search":
selectPanel("pnlSearch"); //显示普通搜索面板
break;
case "#advsearch":
case "#admin":
}
通过window.location.hash=hash这个语句来调整地址栏的地址,使得浏览器里边的“前进”、“后退”按钮能正常使用(实质上欺骗了浏览器)。然后再根据hash值的不同来显示不同的面板(用户可以收藏对应的面板了),这就使得Ajax页面的浏览趋于传统化了。
二、location
二、location对象方法 | |
assign(url) | 载入新文档 ,该方法打开的页面可以点击后退按钮。 |
reload(true),参数可选 | 重新载入当前文档,该方法强迫浏览器刷新当前页面。 可选参数, 默认为 false,从客户端缓存里取当前页。true, 则以 GET 方式,从服务端取最新的页面, 相当于客户端点击 F5。 |
replace(newurl) | 用新文档替换当前文档,该方法打开的页面没有后退按钮,通过指定URL替换当前缓存在历史里(客户端)的项目,因此当使用replace方法之后,你不能通过“前进”和“后退”来访问之前的历史记录。 |
二、location对象方法 | |
assign(url) | 载入新文档 ,该方法打开的页面可以点击后退按钮。 |
reload(true),参数可选 | 重新载入当前文档,该方法强迫浏览器刷新当前页面。 可选参数, 默认为 false,从客户端缓存里取当前页。true, 则以 GET 方式,从服务端取最新的页面, 相当于客户端点击 F5。 |
replace(newurl) | 用新文档替换当前文档,该方法打开的页面没有后退按钮,通过指定URL替换当前缓存在历史里(客户端)的项目,因此当使用replace方法之后,你不能通过“前进”和“后退”来访问之前的历史记录。 |