💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
## 8.2 location对象 location对象提供了与当前窗口中加载的文档有关的信息,还提供了一些导航功能。 它既是window对象的属性,也是document对象的属性。 **用处:** * 保存当前**文档的信息** * 将**URL解析**为独立的片段,让开发人员可以通过不同的属性访问这些片段。 **location对象的所有属性** | 属性| 例子 |描述| |---|---|---| | hash | `"#contents"` | 返回URL中的hash(#号后跟零或多个字符),如果URL中不包含散列,则返回字符串| | host | `“www.wrox.com:80"` |返回服务器名称和端口号(如果有)| | hostname | `“www.wrox.com"` | 返回不带端口号的服务器名称| | href |`“http:/www.worx.com"` | 返回当前加载页面的完整URL。而location对象的toString()也返回这个值| | pathname | `“/WileyCDA/"` | 返回URL中的目录和(或)文件名| | port| `“8080" `|返回URL中指定的端口号。如果URL中不包含端口号,则返回空字符串| | protocol | `“http:"` |返回页面使用的协议。通常是http:或https:| | search | `“?q=javascript"` | 返回URL的查询字符串。以问号开头| ### 8.2.1 查询字符串参数 尽管location.search返回从问号到URL末尾的所有内容,但却没办法逐个访问其中的每个查询字符串参数。为此,可以像下面这样创建一个函数,用以解析查询字符串,然后返回包含所有参数的一个对象: ~~~ function getQueryStringArgs() { //取得查询字符串并去掉开头的问号 var qs = (location.search.length > 0 ? location.search.substring(1) : ''), //保存数据的对象 args = {}, //取得每一项 itmes = 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 位置操作 **Location 对象方法** | 属性 | 描述 | |---|---| | assign() | 加载新的文档,并在浏览器的历史记录中生成一条记录。 | | reload() | 重新加载当前文档。 | | replace() | 用新的文档替换当前文档,不会生成历史记录。*加true参数从服务器重新加载,否则有可能从缓存加载。* |