Location
Windows 对象的 location 属性引用的是 Location 对象,它表示该窗口中当前显示的文档的 URL,并定义了方法来使窗口载入新的文档。其包含的属性被称为 “URL 分解” 属性,同时被 Link 对象支持。
14.2.1 解析 URL
/*
*提取URL的搜索字符串中的参数
*这个函数用来解析来自URL的查询串中的name=value参数对
*它将name=value对存储在一个对象的属性中,并返回该对象
*/
function urlArgs() {
var args = {}
var query = location.search.substring(1);
var pairs = query.split("&");
for(var i = 0; i < pairs.length; i++) {
var pos = pairs[i].indexOf('=');
if (pos == -1) continue;
var name = pairs[i].substring(0,pos);
var value = pairs[i].substring(pos+1);
value = decodeURLComponent(value);
args[name] = value;
}
return args;
}
14.2.2 载入新的文档
//如果检查到用户的浏览器不支持某些特征来显示功能齐全的版本,可以用location.replace()来载入静态的HTML版本
//如果浏览器不支持XMLHttpRequest对象
//则将其重定向到一个不需要Ajax的静态页面
if(!XMLHttpRequest) location.replace("staticpage.html");
Location 对象有三种方法可以使窗口载入并显示你指定的 URL 中的文档。
- assign () 使窗口载入并显示你指定的 URL 中的文档
- replace () 它在载入新文档之前会从浏览历史中把当前文档删除
- reload () 让浏览器重新载入当前文档
更传统的方法:
- 直接把新的 URL 赋值给 location 属性:
location = "http://www.baidu.com";
- 把相对 URL 赋值给 location, 它们会相对当前 URL 进行解析:
location = "page2.html"; //纯粹的片段标识符是相对URL的一种类型,它不会让浏览器载入新文档,但会让它滚动到文档的某个位置。#top标识符是个特殊的例子,如果文档中没有元素的ID是"top",它会让浏览器跳到文档开始处。 location = "#top";
- Location 对象的 URL 分解属性是可写的,对它们重新赋值会改变 URL 的位置,并且导致浏览器载入一个新的文档 (如果改变的是 hash 属性,则在当前文档中进行跳转):
location.search = "?page=" + (pagenum+1);
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: