location 对象的属性
假设我们的 URL 是:
http://www.itpow.com:81/location.htm?key=asp#result
那么 location 对象的属性结果是:
location.hostname = www.itpow.com
location.href = http://www.itpow.com/location.htm?key=asp#result
location.host = www.itpow.com:81
location.hash = #result
location.port = 81
location.pathname = /location.htm
location.search = ?key=asp
location.protocol = http:
需要说明
- 如果 port 不为空,则 host = hostname + ":" + port;如果 port 为空,则 host = hostname。一般来说我们都使用默认端口 80,所以 port 一般为空。
- hash 是包含 # 的。
- pathname 是包含 / 的。
- search 是包含 ? 的。
- protocol 是包含 : 的。
- 以上属性均是可读可写的。
- 如果直接对 location 取值赋值,就相当于对 location.href 取值赋值。
- 在 Ajax 中,可利用 hash 实现前进后退功能。
href = protocol + "//" + host + pathname + search + hash(在本地双击 htm 文件用浏览器打开时可能不适用本公式)
location 对象的方法
- assign(sURL) 读取新的 URL。
- reload([bReloadSource]) bReloadSource 默认为 false,表示从缓存中重新读取;如果为 true,表示从服务端重新读取。
- replace(sURL) 读取新的 URL。
需要说明
- assign 与 replace 是有区别的。假设有 assign.htm 用 assign 跳转到 history.htm,那么在 history.htm 的 JavaScript 对象 history 中就会记录两条历史记录;假设有 replace.htm 用 replace 跳转到 history.htm,那么在 history.htm 的 JavaScript 对象 history 中就只有一条历史记录(该记录为 history.htm,而不是 replace.htm)。
- 用 assign 跳转和 href 跳转则没有什么区别。
相关阅读