location是最有用的BOM对象之一。
window.location和document.location引用的是同一个对象。
8.2 location对象的所有属性:(省略了每个属性前的location前缀)
hash "#contents" 返回url中hash(#号后跟零或多个字符)
host "www.wrox.com:8080" 返回服务器名称和端口号(如果有)
hostname "www.wrox.com" 不带端口号的服务器名称
href "http://www.wrox.com" 完整url
pathname "/WileyCDA/" URL中的目录和文件名
prot "8080" 端口号
protocol "http:" 页面使用协议。http:或https:
search "?q=javascript" URL的查询字符串
8.2.1查询字符串参数
创建一个函数,每个查询字符串参数。
function getQueryStingArgs() { // 查询字符串并去掉开头的?号 var qs = (location.search.length>0?location.search.substring(1):''), // 保存数据的对象 args = {}, //取得每一项 items = qs.length?qs.split("&"):[], item = null, name = null, value = null, // 在for循环中使用 i = 0, len = items.length; // 逐个将每一项添加到args对象中 for(i=0;i<len;i++){ item = items[i].split("="); name = decodeURIComponent(item[0]); value = decodeURIComponent(item[1]); if(name.length){ args[name] = value; } } return args; }
8.2.2位置操作
改变浏览器的位置
window.location = "http://www.wrox.com";
location.href = "http>//www.wrox.com"
修改location对象属性也可以改变加载页面
// 初始URL "http://www.wrox.com/WileyCDA/ "
//将 URL 修改为"http://www.wrox.com/WileyCDA/#section1"
location.hash = "#section1"
//将 URL 修改为"http://www.wrox.com/WileyCDA/?q=javascript"
location.search = "?q=javascript";
//将 URL 修改为"http://www.yahoo.com/WileyCDA/"
location.hostname = "www.yahoo.com";
//将 URL 修改为"http://www.yahoo.com/mydir/"
location.pathname = "mydir";
//将 URL 修改为"http://www.yahoo.com:8080/WileyCDA/"
location.port = 8080;
禁止用户返回到上一个页面:
location.replace("http://www.wrox.com/")
重新加载:
location.reload() // 有可能重缓存中加载
location.reload(true) // 从服务器重新加载