Javascript - HTML的request类


Posted in Javascript onJanuary 09, 2007

做中英转换的时候,要准确的获取参数并取出,所以做了一个简单的html中用js获取当取地址栏的一个Object。
里面有三个方法:
1、request.QueryString("参数")//获取指定参数,返回字符串;
2、request.QueryStrings();//获取全部参数,并返回数组;
3、request.setQuery("参数","参数的值");//如果当前地址栏有此参数,那么将更新此参数,否则返回一个新的地址栏参数字符串。
例如:
当前地址栏参数字符串为:?name=a&site=never_online

alert(request.setQuery("name","blueDestiny"))

如果地址栏参数中有"name",那么返回?name=blueDestiny&site=never_online

setQuery方法有自动追加参数的功能。如:
当前地址栏参数字符串为:?site=never_online
alert(request.setQuery("name","blueDestiny"))
则返回?site=never_online&name=blueDestiny

同理,如果地址栏没有参数,也会自动追加参数
alert(request.setQuery("name","blueDestiny"))
返回?name=blueDestiny

<SCRIPT LANGUAGE="JavaScript">  
<!--  
// author: never-online  
// web: never-online.net  
var request = {  
 QueryString : function(val) {  
 var uri = window.location.search;  
 var re = new RegExp("" +val+ "\=([^\&\?]*)", "ig");  
 return ((uri.match(re))?(uri.match(re)[0].substr(val.length+1)):null);  
 },  
 QueryStrings : function() {  
 var uri = window.location.search;  
 var re = /\w*\=([^\&\?]*)/ig;  
 var retval=[];  
 while ((arr = re.exec(uri)) != null)  
 retval.push(arr[0]);  
 return retval;  
 },  
 setQuery : function(val1, val2) {  
 var a = this.QueryStrings();  
 var retval = "";  
 var seted = false;  
 var re = new RegExp("^" +val1+ "\=([^\&\?]*)$", "ig");  
 for(var i=0; i<a.length; i++) {  
 if (re.test(a[i])) {  
 seted = true;  
 a[i] = val1 +"="+ val2;  
 }  
 }  
 retval = a.join("&");  
 return "?" +retval+ (seted ? "" : (retval ? "&" : "") +val1+ "=" +val2);  
 }  
}  
alert(request.setQuery("e","b"))  
//-->  
</SCRIPT> 
Javascript 相关文章推荐
CSS和Javascript简单复习资料
Jun 29 Javascript
jquery ajax 简单范例(界面+后台)
Nov 19 Javascript
JS嵌套函数调用上下文的问题解决
Mar 26 Javascript
js跨域访问示例(客户端/服务端)
May 19 Javascript
jQuery里filter()函数与find()函数用法分析
Jun 24 Javascript
jQuery实现ctrl+enter(回车)提交表单
Oct 19 Javascript
javascript实现省市区三级联动下拉框菜单
Nov 17 Javascript
Bootstrap选项卡与Masonry插件的完美结合
Jul 06 Javascript
JavaScript实现经典排序算法之冒泡排序
Dec 28 Javascript
解决vue 表格table列求和的问题
Nov 06 Javascript
react 不用插件实现数字滚动的效果示例
Apr 14 Javascript
JS实现公告上线滚动效果
Jan 10 Javascript
贴一个在Mozilla中常用的Javascript代码
Jan 09 #Javascript
Javascript-Mozilla和IE中的一个函数直接量的问题
Jan 09 #Javascript
Javascript调试工具(下载)
Jan 09 #Javascript
如何在Mozilla Gecko 用Javascript加载XSL
Jan 09 #Javascript
如何让动态插入的javascript脚本代码跑起来。
Jan 09 #Javascript
JS效率个人经验谈(8-15更新),加入range技巧
Jan 09 #Javascript
你所要知道JS(DHTML)中的一些技巧
Jan 09 #Javascript
You might like
十大感人催泪爱情动漫 第一名至今不忍在看第二遍
2020/03/04 日漫
smarty模板中使用get、post、request、cookies、session变量的方法
2014/04/24 PHP
基于CakePHP实现的简单博客系统实例
2015/06/28 PHP
php有效防止同一用户多次登录
2015/11/19 PHP
PHP中的密码加密的解决方案总结
2016/10/26 PHP
php实现微信模板消息推送
2018/03/30 PHP
对laravel的session获取与存取方法详解
2019/10/08 PHP
制作特殊字的脚本
2006/06/26 Javascript
js实现带搜索功能的下拉框实时搜索实时匹配
2013/11/05 Javascript
Jquery对数组的操作技巧整理
2014/03/25 Javascript
快速掌握Node.js环境的安装与运行方法
2016/02/16 Javascript
javascript实现的图片预览功能
2017/03/25 Javascript
整理关于Bootstrap排版的慕课笔记
2017/03/29 Javascript
微信小程序 下拉菜单简单实例
2017/04/13 Javascript
Vue+axios 实现http拦截及路由拦截实例
2017/04/25 Javascript
bootstrap模态框示例代码分享
2017/05/17 Javascript
nodejs 图片预览和上传的示例代码
2017/09/30 NodeJs
JS实现百度网盘任意文件强制下载功能
2018/08/31 Javascript
解决Vue2.0 watch对象属性变化监听不到的问题
2018/09/11 Javascript
Node.js之readline模块的使用详解
2019/03/25 Javascript
详解mpvue实现对苹果X安全区域的适配
2019/07/31 Javascript
微信小程序如何通过用户授权获取手机号(getPhoneNumber)
2020/01/21 Javascript
Vue如何实现变量表达式选择器
2021/02/18 Vue.js
[01:32]完美世界DOTA2联赛10月29日精彩集锦
2020/10/30 DOTA
在Python中测试访问同一数据的竞争条件的方法
2015/04/23 Python
Python虚拟环境Virtualenv使用教程
2015/05/18 Python
jupyter notebook引用from pyecharts.charts import Bar运行报错
2020/04/23 Python
Python 利用高德地图api实现经纬度与地址的批量转换
2019/08/14 Python
python批量将excel内容进行翻译写入功能
2019/10/10 Python
django models里数据表插入数据id自增操作
2020/07/15 Python
python一些性能分析的技巧
2020/08/30 Python
捷克领先的户外服装及配件市场零售商:ALPINE PRO
2018/01/09 全球购物
linux面试题参考答案(5)
2014/09/01 面试题
公司财务自我评价分享
2013/12/17 职场文书
前台文员岗位职责
2013/12/28 职场文书
2016秋季校长开学典礼致辞
2015/11/26 职场文书