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 相关文章推荐
javascript 原型继承介绍
Aug 30 Javascript
灵活应用js调试技巧解决样式问题的步骤分享
Mar 15 Javascript
实例解析Array和String方法
Dec 14 Javascript
Vue组件开发初探
Feb 14 Javascript
bootstrap multiselect 多选功能实现方法
Jun 05 Javascript
node.js express中app.param的用法详解
Jul 16 Javascript
使用JavaScript实现点击循环切换图片效果
Sep 03 Javascript
微信小程序 配置顶部导航条标题颜色的实现方法
Sep 20 Javascript
使用Vuex实现一个笔记应用的方法
Mar 13 Javascript
JQuery animate动画应用示例
May 14 jQuery
layui文件上传控件带更改后数据传值的方法
Sep 23 Javascript
vue项目中的支付功能实现(微信支付和支付宝支付)
Feb 18 Vue.js
自制轻量级仿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缩略图生成程式(需要GD库支持)
2007/03/06 PHP
PHP Class&amp;Object -- 解析PHP实现二叉树
2013/06/25 PHP
深入解析PHP中的(伪)多线程与多进程
2013/07/01 PHP
浅谈PHP中foreach/in_array的使用
2015/11/02 PHP
php使用CutyCapt实现网页截图保存的方法
2016/10/03 PHP
php策略模式简单示例分析【区别于工厂模式】
2019/09/25 PHP
把JS与CSS写在同一个文件里的书写方法
2007/06/02 Javascript
[原创]js获取数组任意个不重复的随机数组元素
2010/03/15 Javascript
让IE6支持min-width和max-width的方法
2010/06/25 Javascript
Jquery + Ajax调用webService实例代码(asp.net)
2010/08/27 Javascript
jquery.cookie.js 操作cookie实现记住密码功能的实现代码
2011/04/27 Javascript
Javascript四舍五入Math.round()与Math.pow()使用介绍
2013/12/27 Javascript
js调试系列 断点与动态调试[基础篇]
2014/06/18 Javascript
利用jquery操作Radio方法小结
2014/10/20 Javascript
Bootstrap carousel轮转图的使用实例详解
2016/05/17 Javascript
基于JS代码实现导航条弹出式悬浮菜单
2016/06/17 Javascript
JavaScript禁止用户多次提交的两种方法
2016/07/24 Javascript
js内置对象处理_打印学生成绩单的简单实现
2016/09/24 Javascript
关于微信jssdk实现多图片上传的一点心得分享
2016/12/13 Javascript
Node.js制作简单聊天室
2017/01/12 Javascript
Vue组件tree实现树形菜单
2017/04/13 Javascript
JavaScript选取(picking)和反选(rejecting)对象的属性方法
2017/08/16 Javascript
JavaScript中作用域链的概念及用途讲解
2020/08/06 Javascript
[53:15]2018DOTA2亚洲邀请赛3月29日 小组赛A组 KG VS OG
2018/03/30 DOTA
[02:19]2018年度DOTA2最佳核心位选手-完美盛典
2018/12/17 DOTA
跟老齐学Python之大话题小函数(2)
2014/10/10 Python
在Python程序中进行文件读取和写入操作的教程
2015/04/28 Python
django缓存配置的几种方法详解
2018/07/16 Python
Python使用Opencv实现图像特征检测与匹配的方法
2019/10/30 Python
TensorFlow绘制loss/accuracy曲线的实例
2020/01/21 Python
爱他美官方海外旗舰店:Aptamil奶粉
2017/12/22 全球购物
应聘医药代表职位求职信
2013/10/21 职场文书
励志演讲稿范文
2014/04/29 职场文书
小学生迎国庆演讲稿
2014/09/05 职场文书
“四风”问题自我剖析材料思想汇报
2014/09/23 职场文书
工作经历证明范本
2015/06/15 职场文书