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 子窗口操作父窗口的代码
Sep 21 Javascript
js浮点数精确计算(加、减、乘、除)
Dec 26 Javascript
基于JQuery制作可编辑的表格特效
Dec 23 Javascript
简单实现的JQuery文本框水印插件
Jun 14 Javascript
JS快速实现移动端拼图游戏
Sep 05 Javascript
详解vuex结合localstorage动态监听storage的变化
May 03 Javascript
用JS实现根据当前时间随机生成流水号或者订单号
May 31 Javascript
JS实现获取数组中最大值或最小值功能示例
Mar 02 Javascript
jQuery/JS监听input输入框值变化实例
Oct 17 jQuery
通过原生vue添加滚动加载更多功能
Nov 21 Javascript
解决vue打包 npm run build-test突然不动了的问题
Nov 13 Javascript
一文带你理解vue创建一个后台管理系统流程(Vue+Element)
May 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解析html类库simple_html_dom(详细介绍)
2013/07/05 PHP
教你php如何实现验证码
2016/01/20 PHP
PHP中error_reporting函数用法详细介绍
2017/06/11 PHP
YII框架页面缓存操作示例
2019/04/29 PHP
phpinfo的知识点总结
2019/10/10 PHP
在次封装easyui-Dialog插件实现代码
2010/11/14 Javascript
JQuery文本框高亮显示插件代码
2011/04/02 Javascript
使用js画图之画切线
2015/01/12 Javascript
JS+CSS实现模仿浏览器网页字符查找功能的方法
2015/02/26 Javascript
浅谈JavaScript超时调用和间歇调用
2015/08/30 Javascript
理解JavaScript表单的基础知识
2016/01/25 Javascript
JavaScript中最常见的三个面试题解析
2017/03/04 Javascript
vue mint-ui学习笔记之picker的使用
2017/10/11 Javascript
p5.js入门教程之键盘交互
2018/03/19 Javascript
使用JS判断移动端手机横竖屏状态
2018/07/30 Javascript
JS实现二维数组元素的排列组合运算简单示例
2019/01/28 Javascript
详解babel升级到7.X采坑总结
2019/05/12 Javascript
vue项目中将element-ui table表格写成组件的实现代码
2019/06/12 Javascript
卸载vue2.0并升级vue_cli3.0的实例讲解
2020/02/16 Javascript
[38:44]DOTA2上海特级锦标赛A组小组赛#2 Secret VS CDEC第二局
2016/02/25 DOTA
Python 文件操作技巧(File operation) 实例代码分析
2008/08/11 Python
使用IPython来操作Docker容器的入门指引
2015/04/08 Python
python黑魔法之参数传递
2016/02/12 Python
python中sys.argv函数精简概括
2018/07/08 Python
详解程序意外中断自动重启shell脚本(以Python为例)
2019/07/26 Python
法国二手手袋、手表和奢侈珠宝购物网站:Collector Square
2018/07/05 全球购物
世界上最大的隐形眼镜商店:1-800 Contacts
2018/11/03 全球购物
澳大利亚顶级美发和美容贸易超市:glamaCo
2020/01/19 全球购物
如何写自我评价?自我评价写什么好?
2014/03/14 职场文书
教师先进工作者事迹材料
2014/05/01 职场文书
教师调动申请报告
2015/05/18 职场文书
小人国观后感
2015/06/11 职场文书
MySQL REVOKE实现删除用户权限
2021/06/18 MySQL
windows11怎么查看自己安装的版本号? win11版本号的查看方法
2021/11/21 数码科技
修改Nginx配置返回指定content-type的方法
2022/09/23 Servers
插件导致ECharts被全量引入的坑示例解析
2022/09/23 Javascript