js获取url及起参数列表及扩展应用
在基于B/S的web开发中,我们时常会通过发请求给服务端,来完成所需要的功能。这时候,url就少不了,无参的,带参的,等等。所以在有的时候,我们就需要通过获取当前发送的url的参数,通过这些参数进而完成更多的功能,所以这篇文章我们就会谈到,在不借助其他工具的情况下,用我们的jquery来完成对当前请求的url的参数的获取。在这里,我就列举出3类的获取参数的方法,其实质,当然,都是类似的。
第一种:1.引用外部js:<script type="text/javascript" src="js/jquery.query.js"></script>
2.设置js参数:<script type="text/javascript">
var jQuery.query={numbers:false,hash:true};
</script>
3.调用方法,获得参数:$.query.get(param1),$.query.get(param2),$.query.get(param3)......
第二种:1.引用外部js:<script type="text/javascript" src="js/jquery.query.js"></script>
2.编写脚本方法:<script type="text/javascript">
function GetQueryString(name)
{
var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);
if (r!=null) return unescape(r[2]); return null;
}
</script>
3.调用方法,获得参数:GetQueryString("param1"),GetQueryString("param2"),GetQueryString("param3").....
第三种:1.引用外部js:<script type="text/javascript" src="js/jquery-1.4.2.js"></script>
2.编写脚本方法:<script type="text/javascript">
$.extend(
getUrlVars:function(){
var vars=[],hash;
var hashes=window.location.href.slice(window.location.href.indexOf('?' )
+ 1).split( '&' );
for ( var i
= 0; i < hashes.length; i++)
{
hash = hashes[i].split( '=' );
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
},
getUrlVar:function(name){
return $.getUrlVars()[name];
}
);
</script>
3.调用方法,获得参数:$.getUrlVars();$.getUrlVar( 'name' );
由上述三种方式可以看出,我们会引用到jquery.query.js这个js文件,这个js里到底是提供了哪些方法呢,下面我们把它的代码贴出来:
Js代码
/**
* jQuery.query - Query String Modification and Creation for jQuery
* Written by Blair Mitchelmore (blair DOT mitchelmore AT gmail DOT com)
* Licensed under the WTFPL (http://sam.zoy.org/wtfpl/).
* Date: 2009/8/13
*
* @author Blair Mitchelmore
* @version 2.1.6
*
**/
new function(settings) {
// Various Settings
var $separator = settings.separator || '&';
var $spaces = settings.spaces === false ? false : true;
var $suffix = settings.suffix === false ? '' : '[]';
var $prefix = settings.prefix === false ? false : true;
var $hash = $prefix ? settings.hash === true ? "#" : "?" : "";
var $numbers = settings.numbers === false ? false : true;
jQuery.query = new function() {
var is = function(o, t) {
return o != undefined && o !== null && (!!t ? o.constructor == t : true);
};
var parse = function(path) {
var m, rx = /\[([^[]*)\]/g, match = /^([^[]+?)(\[.*\])?$/.exec(path), base = match[1], tokens = [];
while (m = rx.exec(match[2])) tokens.push(m[1]);
return [base, tokens];
};
var set = function(target, tokens, value) {
var o, token = tokens.shift();
if (typeof target != 'object') target = null;
if (token === "") {
if (!target) target = [];
if (is(target, Array)) {
target.push(tokens.length == 0 ? value : set(null, tokens.slice(0), value));
} else if (is(target, Object)) {
var i = 0;
while (target[i++] != null);
target[--i] = tokens.length == 0 ? value : set(target[i], tokens.slice(0), value);
} else {
target = [];
target.push(tokens.length == 0 ? value : set(null, tokens.slice(0), value));
}
} else if (token && token.match(/^\s*[0-9]+\s*$/)) {
var index = parseInt(token, 10);
if (!target) target = [];
target[index] = tokens.length == 0 ? value : set(target[index], tokens.slice(0), value);
} else if (token) {
var index = token.replace(/^\s*|\s*$/g, "");
if (!target) target = {};
if (is(target, Array)) {
var temp = {};
&nb
补充:web前端 , JavaScript ,