location 对象的属性和方法

作者:vkvi 来源:ITPOW(原创) 日期:2009-5-8

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 跳转则没有什么区别。

相关阅读

相关文章