当前位置:编程学习 > JS >>

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 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,