Location

Windows对象的location属性引用的是Location对象,它表示该窗口中当前显示的文档的URL,并定义了方法来使窗口载入新的文档。其包含的属性被称为“URL分解”属性,同时被Link对象支持。

JavaScript

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() 让浏览器重新载入当前文档

更传统的方法:

  1. 直接把新的URL赋值给location属性:
    location = "http://www.baidu.com";
  2. 把相对URL赋值给location,它们会相对当前URL进行解析:
    location = "page2.html";
    //纯粹的片段标识符是相对URL的一种类型,它不会让浏览器载入新文档,但会让它滚动到文档的某个位置。#top标识符是个特殊的例子,如果文档中没有元素的ID是"top",它会让浏览器跳到文档开始处。
    location = "#top";
  3. Location对象的URL分解属性是可写的,对它们重新赋值会改变URL的位置,并且导致浏览器载入一个新的文档(如果改变的是hash属性,则在当前文档中进行跳转):
    location.search = "?page=" + (pagenum+1);
本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!