获取location
获取location的方法网上有很多种了,之前也自己写过很多种,这些方法各有利弊吧,这里我自己整理一个自己最常用的。
此方法主要实现了以下两个分支功能:
- 实时获取
- 传入一个字符串参数的时候,返回以此字符串做为键名的值
- 不传入任何参数的时候,返回一个json对象,包含所有search参数的键值对
- 既然是location相关的东西,就把这个方法直接做为一个location的属性方法吧
以下是源码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| location.query = function(){ var query; if(typeof arguments[0] === 'string'){ var reg = new RegExp('[?&]' + arguments[0] + '=([^&]+)',''); query = reg.test(location.search) ? RegExp.$1 : ''; }else{ query = {}; location.search.replace('?','').split('&').forEach(function(item){ item = item.split('='); item[0] && (query[item[0]] = item[1] || ''); }) } return query; }
|
获取cookie
获取cookie的方法其实跟获取location本质上是一样的,就是操作字符串呗,我这里就不过多描述了,把上面稍微改动一下就出来了。
另外document.cookie本身是个字符串类型的值,所以我们就没办法把这个方法跟这个东西关联起来了,就直接定义一个全局方法吧。
以下是源码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| function getCookie(){ var query; if(typeof arguments[0] === 'string'){ var reg = new RegExp('\\b' + arguments[0] + '=([^;]+)',''); query = reg.test(document.cookie) ? RegExp.$1 : ''; }else{ query = {}; document.cookie.split(';').forEach(function(item){ item = item.trim().split('='); item[0] && (query[item[0]] = item[1] || ''); }) } return query; }
|
本文永久链接: https://www.mulianju.com/获取location上的参数/