jQuery获取地址栏参数插件(模仿C#)


Posted in Javascript onOctober 26, 2010
$.request = (function () { 
var apiMap = {}; 
function request(queryStr) { 
var api = {}; 
if (apiMap[queryStr]) { 
return apiMap[queryStr]; 
} 
api.queryString = (function () { 
var urlParams = {}; 
var e, 
d = function (s) { return decodeURIComponent(s.replace(/\+/g, " ")); }, 
q = queryStr.substring(queryStr.indexOf('?') + 1), 
r = /([^&=]+)=?([^&]*)/g; 
while (e = r.exec(q)) 
urlParams[d(e[1])] = d(e[2]); return urlParams; 
})(); 
api.getUrl = function () { 
var url = queryStr.substring(0, queryStr.indexOf('?') + 1); 
for (var p in api.queryString) { 
url += p + '=' + api.queryString[p] + "&"; 
} 
if (url.lastIndexOf('&') == url.length - 1) { 
return url.substring(0, url.lastIndexOf('&')); 
} 
return url; 
} 
apiMap[queryStr] = api; 
return api; 
} 
$.extend(request, request(window.location.href)); 
return request; 
})();

接下来简介绍一下插件的用法。

我们可以通过 $.request.queryString["key"] 就能获取到地址栏上面key参数。

大多数情况下我用这个插件来读取一些配置信息。

我们有时候会在 html 标签中加入一些其他的非HTML属性来作为标志信息,比如我们有时候会写<a id="demo" href="javascript:;" config="?title=hello&auto=true&">Demo</a>

这样子我们通过


var config = $.request($("#demo").attr("config")).queryString;

var title = config.title;

很方便就能读取a上面的配置信息,而且我们不需要给a 添加太多其他的非Html属性。

Javascript 相关文章推荐
jQuery学习笔记 更改jQuery对象
Sep 19 Javascript
Extjs 3.3切换tab隐藏相应工具栏出现空白解决
Apr 02 Javascript
js显示动态时间的方法详解
Aug 20 Javascript
jQuery实现简单的网页换肤效果示例
Sep 18 Javascript
CSS3 media queries结合jQuery实现响应式导航
Sep 30 Javascript
node通过npm写一个cli命令行工具
Oct 12 Javascript
Vue2.0学习系列之项目上线的方法步骤(图文)
Sep 25 Javascript
详解ES6系列之私有变量的实现
Nov 21 Javascript
js获取form表单中name属性的值
Feb 27 Javascript
jQuery实现的导航条点击后高亮显示功能示例
Mar 04 jQuery
jQuery Migrate 插件用法实例详解
May 22 jQuery
Vue axios 跨域请求无法带上cookie的解决
Sep 08 Javascript
自制轻量级仿jQuery.boxy对话框插件代码
Oct 26 #Javascript
jquery ui resizable bug解决方法
Oct 26 #Javascript
HTML Dom与Css控制方法
Oct 25 #Javascript
Dom在ajax技术中的作用说明
Oct 25 #Javascript
Dom与浏览器兼容性说明
Oct 25 #Javascript
Dom 是什么的详细说明
Oct 25 #Javascript
Javascript类库的顶层对象名用户体验分析
Oct 24 #Javascript
You might like
PHP.MVC的模板标签系统(四)
2006/09/05 PHP
PHP基于PDO扩展操作mysql数据库示例
2018/12/24 PHP
laravel5.5安装jwt-auth 生成token令牌的示例
2019/10/24 PHP
Javascript里使用Dom操作Xml
2006/09/20 Javascript
简单通用的JS滑动门代码
2008/12/19 Javascript
Javascript计算时间差的函数分享
2011/07/04 Javascript
jQuery实现视频作为全屏幕背景
2014/12/18 Javascript
jQuery.Uploadify插件实现带进度条的批量上传功能
2016/06/08 Javascript
jQuery实用密码强度检测
2017/03/02 Javascript
js轮播图无缝滚动效果
2017/06/17 Javascript
Vue项目全局配置微信分享思路详解
2018/05/04 Javascript
微信小程序收货地址API兼容低版本解决方法
2019/05/18 Javascript
转换layUI的数据表格中的日期格式方法
2019/09/19 Javascript
js抽奖转盘实现方法分析
2020/05/16 Javascript
Vue-router编程式导航的两种实现代码
2021/03/04 Vue.js
[06:07]刀塔密之二:攻之吾命受之吾幸
2014/07/03 DOTA
tensorflow实现加载mnist数据集
2018/09/08 Python
Python 读写文件的操作代码
2018/09/20 Python
由面试题加深对Django的认识理解
2019/07/19 Python
Python自动采集微信联系人的实现示例
2020/02/28 Python
PyQt5 控件字体样式等设置的实现
2020/05/13 Python
PIP和conda 更换国内安装源的方法步骤
2020/09/21 Python
python 可视化库PyG2Plot的使用
2021/01/21 Python
html5 css3 动态气泡按钮实例演示
2012/12/02 HTML / CSS
西海岸男士和男童服装:Johnnie-O
2018/03/15 全球购物
YSL圣罗兰美妆英国官网:Yves Saint Laurent Beauty UK
2019/08/03 全球购物
Armor Lux法国官方网站:水手服装、成衣和内衣
2020/05/26 全球购物
JAVA中的关键字有什么特点
2014/03/07 面试题
机关单位人员学雷锋心得体会
2014/03/10 职场文书
购房意向书
2014/04/01 职场文书
2014最新开业庆典策划方案(5篇)
2014/09/15 职场文书
优秀党员先进材料
2014/12/18 职场文书
2015年消防工作总结
2015/04/24 职场文书
三十年同学聚会致辞
2015/07/28 职场文书
班主任工作总结范文
2015/08/13 职场文书
优秀乡村医生事迹材料(2016精选版)
2016/02/29 职场文书