Location对象、History对象

Location对象

        Window对象的location属性引用的是Location对象,它表示窗口中当前显示的内容的URL,Document对象的location属性也引用Location对象,window.location === document.lacation; //true

        Document对象还有一个URL属性,document.URL属性表示文档首次载入后保存该文档的URL的 静态字符串。如果定位到文档中的片段标识符如#tag,location对象会做相应的更新,而document.URL属性则不变;
解析URL
Location 对象属性:
hash             设置或返回从井号 (#) 开始的 URL(锚)。
host              设置或返回主机名和当前 URL 的端口号。
hostname     设置或返回当前 URL 的主机名。
href              设置或返回完整的 URL(location.toString()返回href属性的值)。
pathname     设置或返回当前 URL 的路径部分。
port              设置或返回当前 URL 的端口号。
protocol       设置或返回当前 URL 的协议。
search          设置或返回从问号 (?) 开始的 URL(查询部分)。
Location 对象方法:
assign()   加载新的文档。
reload()   重新加载当前文档。
replace() 用新的文档替换当前文档(无法‘后退’,替换掉之前的文档)
        如果检测到浏览器不支持某些特性,可以用location.replace()来重定向载入不含该特性的版本,如:if(!XMLHttpRequest){ location.replace('staticpage.html');}这里使用相对URL,指相对当前文档的目录来解析
        使浏览器跳转到新页面,最简单的方法是location = '绝对URL地址或相对URL';
        使文档滚动到标识符指定的位置,location = '#idname',特殊标识符#top滚到文档顶部(前提是文档内不存在id为top的元素)
function urlArgs(){
var args = {};
var queay = location.search.slice(1);
queay = queay.replace(/</g,"&lt;").replace(/>/g,"&gt;");
var pairs = queay.splice('&');
for(var i = 0;i<pairs.length;i++){
var pos = pairs[i].indexOf('=');
if(pos==-1){continue;};
var name = pairs[i].slice(0,pos);
var value = pairs[i].slice(pos+1);
value = decodeURIComponent(value);
args[name] = value;
}
return args;
}

History对象:Window对象的history属性引用的是History对象
History 对象属性
history.length 返回浏览器历史列表中的 URL 数量。
 
History 对象方法
history.back() 加载 history 列表中的前一个 URL。
history.forward() 加载 history 列表中的下一个 URL。
history.go(number|URL) 加载 history 列表中的某个具体页面,URL 参数使用的是要访问的 URL,或 URL 的子串
原文地址:https://www.cnblogs.com/susufufu/p/5713985.html