首先要知道Location这个对象以及这个对象中的一些属性:

href:设置或返回完整的url.如本博客首页返回http://www.cnblogs.com/wymninja/

host:设置或返回主机名和当前的URL的端口号。本博客首页返回www.cnblogs.com

hostname:设置或返回当前URL的主机名。本博客首页返回www.cnblogs.com

hash:设置或返回从井号(#)开始的URL(锚)。本博客首页返回 空

pathname:设置或返回当前URL的路径部分。本博客首页返回/wymninja/

port:设置或返回当前URL的端口号。本博客首页返回 空

protocol:设置或返回当前URL的协议。本博客首页返回 http:

search:设置或返回从问号 (?) 开始的 URL(查询部分)

location对象属性图示:图片来自慕课网

location的href属性存放的是文档的完整 URL,其他属性则分别描述了 URL 的各个部分。这些属性与 Anchor 对象(或 Area 对象)的 URL 属性非常相似。当一个 Location 对象被转换成字符串,href 属性的值被返回。这意味着你可以使用表达式 location 来替代 location.href。不过 Anchor 对象表示的是文档中的超链接,Location 对象表示的却是浏览器当前显示的文档的 URL(或位置)

var s = location.toString(); console.log(s); #result //http://www.cnblogs.com/wymninja/

Location对象的这些属性都是可读可写的,如果改变了文档的location.href,则浏览器会载入新的页面。同样如果改变了location.hash,则页面会跳转到新的锚点,但此时页面不会重载。

Location对象还有三个方法:assign()、reload()、replace()

assign():加载新的文档

reload():可以重新装载当前文档

replace():可以装载一个新文档而无须为它创建一个新的历史记录。也就是说,在浏览器的历史列表中,新文档将替换当前文档。这样就不能通过【返回】按钮返回当前文档了。

注意:

不要混淆Window对象的location属性和Document对象的location对象。前者引用一个Location对象,后者只是一个 只读字符串,并不具有Location对象的任何特性。Document.location与document.URL是同义的。但是,当存在服务器重定 向时,document.location包含的是已经装载的URL,而location.href包含的则是原始请求的文档的URL。

所以要获取浏览器URL中查询字符串的参数。也就是location.search部分。以慕课网图片为例就是?courseid = 8&cahpterid = 86中的8和86!!!!然后就利用如下代码:

function getQuery(name){   var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg);//从?之后开始匹配如getQuery(courseid)返回一个数组["courseid=8","","8","&",index:0,input:"courseid=8"]
if (r!=null) return unescape(r[2]); return null; }

其中:

对match不清楚可查阅我的博客Javascript string对象

unescape 对参数进行解码,如空格解码为20%

最新文章

  1. ubuntu14 opencv python 安装
  2. $.data(data , "")
  3. haskell笔记2
  4. iOS-网址集
  5. dos快速通道
  6. 《我是IT小小鸟》读书笔记
  7. 微软停服 XP系统到底伤害了谁?
  8. vm.dirty_background_ratio and vm.dirty_ratio
  9. python实现模拟登录【转】
  10. maven/eclipse搭建ssm(spring+spring mvc+mybatis)
  11. 1号店Interview小结
  12. DATA VISUALIZATION – PART 1
  13. 原生JS实现各种经典网页特效——Banner图滚动、选项卡切换、广告弹窗等
  14. 一个实时收集MySql变更记录的组件CanalSharp.AspNetCore
  15. Regularity criteria for NSE 6: $u_3,\p_3u_1,\p_3u_2$
  16. {408} client block at 0x005D4D10, subtype 0, 64 bytes long.a CButton object at $005D4D10, 64 bytes long
  17. STM32 USB-三个HID-interface 复合(组合)设备的代码实现-基于固件库(原创)
  18. php四个常用类封装
  19. Python基础【day02】:元组和购物车练习的知识点
  20. 【转】vue+axios 前端实现登录拦截(路由拦截、http拦截)

热门文章

  1. BC ROUND 43# 03 HDU 5266
  2. Jmeter压测问题_Non HTTP response code: java.net.ConnectException
  3. Java 二进制和十进制互转,二进制和BitSet互转
  4. BNU 13289 Energetic Pandas DP
  5. 【数据结构】链式向前星知识点&代码
  6. Android - Fragment BackStack 清空
  7. golang LMDB入门例子——key range查询
  8. Spring配置事务中的 transactionAttributes 各属性含义及XML配置
  9. codevs1519 过路费(最小生成树+LCA)
  10. [Swift]实现优先队列PriorityQueue