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 文档的编码问题解决
Mar 01 Javascript
禁用页面部分JavaScript方法的具体实现
Jul 31 Javascript
使用js在页面中绘制表格核心代码
Sep 16 Javascript
js动态设置div的值下例子
Oct 29 Javascript
JavaScript实现移动端轮播效果
Jun 06 Javascript
JavaScript注册时密码强度校验代码
Jun 30 Javascript
vue二级菜单导航点击选中事件的方法
Sep 12 Javascript
vue中的适配px2rem示例代码
Nov 19 Javascript
如何为你的JavaScript代码日志着色详解
Apr 08 Javascript
微信小程序之下拉列表实现方法解析(附完整源码)
Aug 23 Javascript
解决ant Design中this.props.form.validateFields未执行的问题
Oct 27 Javascript
JavaScript canvas实现流星特效
May 20 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
全国FM电台频率大全 - 5 内蒙古自治区
2020/03/11 无线电
apache2.2.4+mysql5.0.77+php5.2.8安装精简
2009/04/29 PHP
php中的观察者模式
2010/03/24 PHP
php错误提示failed to open stream: HTTP request failed!的完美解决方法
2011/06/06 PHP
关于PHP实现异步操作的研究
2013/02/03 PHP
php function用法如何递归及return和echo区别
2014/03/07 PHP
PHP简单验证码功能机制实例详解
2019/03/27 PHP
Asp.net下使用Jquery Ajax传送和接收DataTable的代码
2010/09/12 Javascript
Jquery插件写法笔记整理
2012/09/06 Javascript
JS图片无缝、平滑滚动代码
2014/03/11 Javascript
JavaScript创建对象的方式小结(4种方式)
2015/12/17 Javascript
Bootstrap select实现下拉框多选效果
2016/12/23 Javascript
jQuery+HTML5实现弹出创意搜索框层
2016/12/29 Javascript
鼠标拖动改变DIV等网页元素的大小的实现方法
2017/07/06 Javascript
jQuery初级教程之网站品牌列表效果
2017/08/02 jQuery
Vue点击切换颜色的方法
2018/09/13 Javascript
Vuex 快速入门(简单易懂)
2018/09/20 Javascript
js限制输入框只能输入数字(onkeyup触发)
2018/09/28 Javascript
node app 打包工具pkg的具体使用
2019/01/17 Javascript
详解在网页上通过JS实现文本的语音朗读
2019/03/28 Javascript
如何用vue-cli3脚手架搭建一个基于ts的基础脚手架的方法
2019/12/12 Javascript
[04:59]DOTA2-DPC中国联赛 正赛 Ehome vs iG 选手采访
2021/03/11 DOTA
python3+PyQt5实现使用剪贴板做复制与粘帖示例
2017/01/24 Python
Python面向对象特殊成员
2017/04/24 Python
使用实现XlsxWriter创建Excel文件并编辑
2018/05/04 Python
wxPython实现绘图小例子
2019/11/19 Python
python同义词替换的实现(jieba分词)
2020/01/21 Python
Python+redis通过限流保护高并发系统
2020/04/15 Python
python统计mysql数据量变化并调用接口告警的示例代码
2020/09/21 Python
美国廉价机票预订网站:Cheapfaremart
2018/04/28 全球购物
哥伦比亚加拿大官网:Columbia Sportswear Canada
2020/09/07 全球购物
酒店行政人事部经理职务说明书
2014/02/26 职场文书
《三个小伙伴》教学反思
2014/04/11 职场文书
学校食堂食品安全责任书
2014/07/28 职场文书
悬空寺导游词
2015/02/05 职场文书
求职自我评价怎么写
2015/03/09 职场文书