使用jquery获取url及url参数的简单实例


Posted in Javascript onJune 14, 2016

使用jquery获取url以及使用jquery获取url参数是我们经常要用到的操作

1、jquery获取url很简单,代码如下:

window.location.href;

其实只是用到了javascript的基础的window对象,并没有用jquery的知识。

2、jquery获取url参数比较复杂,要用到正则表达式,所以学好javascript正则式多么重要的事情

首先看看单纯的通过javascript是如何来获取url中的某个参数:

//获取url中的参数
    function getUrlParam(name) {
      var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
      var r = window.location.search.substr(1).match(reg); //匹配目标参数
      if (r != null) return unescape(r[2]); return null; //返回参数值
    }

通过这个函数传递url中的参数名就可以获取到参数的值,比如url为

http://localhost:33064/WebForm2.aspx?reurl=WebForm1.aspx

我们要获取reurl的值,可以这样写:

var xx = getUrlParam('reurl');

明白了javascript获取url参数的方法,我们可以通过这个方法为jquery扩展一个方法来通过jquery获取url参数,下面的代码为jquery扩展了一个getUrlParam()方法

(function ($) {
        $.getUrlParam = function (name) {
          var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
          var r = window.location.search.substr(1).match(reg);
          if (r != null) return unescape(r[2]); return null;
        }
      })(jQuery);

为jquery扩展了这个方法了之后我们就可以通过如下方法来获取某个参数的值了:

var xx = $.getUrlParam('reurl');

完整代码:

<script src="js/jquery-1.7.2.min.js" type="text/javascript"></script>
  <script type="text/javascript">
    $(function () {

      //方法二:
      (function ($) {
        $.getUrlParam = function (name) {
          var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
          var r = window.location.search.substr(1).match(reg);
          if (r != null) return unescape(r[2]); return null;
        }
      })(jQuery);

      //方法二:
      var xx = $.getUrlParam('reurl');

      //方法一:
      // var xx = getUrlParam('reurl');


      alert(xx);

    });

    //方法一:
    //获取url中的参数
    function getUrlParam(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>

2014-4-23 修改

今天在用上面的方法获取url中的参数时,url中传递的中文参数在解析的时候无论怎么测试,获取的都是乱码。经过一番调试后发现,我再传递参数时,对汉字编码使用的是 encodeURI ,而上面的方法在解析参数编码时使用的是unescape ,修改为 decodeURI 就可以了。

附: W3School中的介绍:

JavaScript unescape() 函数

定义和用法

unescape() 函数可对通过 escape() 编码的字符串进行解码。

参数 描述
string 必需。要解码或反转义的字符串。

说明

该函数的工作原理是这样的:通过找到形式为 %xx 和 %uxxxx 的字符序列(x 表示十六进制的数字),用 Unicode 字符 \u00xx 和 \uxxxx 替换这样的字符序列进行解码。

提示和注释

注释:ECMAScript v3 已从标准中删除了 unescape() 函数,并反对使用它,因此应该用 decodeURI() 和

decodeURIComponent() 取而代之。

综上: javascript对参数编码解码方法要一致:

escape()   unescape()

encodeURI()   decodeURI()

encodeURIComponent()    decodeURIComponent() 

网上找的另一种javascript获取url中参数的方法:

<script language="JavaScript" type="text/javascript"> 

function GetUrlParms()  

{

  var args=new Object();  

  var query=location.search.substring(1);//获取查询串  

  var pairs=query.split("&");//在逗号处断开  

  for(var  i=0;i<pairs.length;i++)  

  {  

    var pos=pairs[i].indexOf('=');//查找name=value  

      if(pos==-1)  continue;//如果没有找到就跳过  

      var argname=pairs[i].substring(0,pos);//提取name  

      var value=pairs[i].substring(pos+1);//提取value  

      args[argname]=unescape(value);//存为属性  

  }

  return args;

}

var args = new Object();



args = GetUrlParms();

//如果要查找参数key:

if(args["id"]!=undefined)

{

//如果要查找参数key:

var value1 = args["id"] ;

alert(value1);

}</script>

以上这篇使用jquery获取url及url参数的简单实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
添加到收藏夹代码(兼容几乎所有的浏览器)
Jan 09 Javascript
javascript web页面刷新的方法收集
Jul 02 Javascript
JavaScript中的eval()函数详解
Aug 22 Javascript
jQuery之选项卡的简单实现
Feb 28 Javascript
js实现可折叠展开的手风琴菜单效果
Sep 07 Javascript
js判断上传文件后缀名是否合法
Jan 28 Javascript
全面解析bootstrap格子布局
May 22 Javascript
jQuery+json实现动态创建复杂表格table的方法
Oct 25 Javascript
node操作mysql数据库实例详解
Mar 17 Javascript
基于JS递归函数细化认识及实用实例(推荐)
Aug 07 Javascript
JS实现选项卡效果的代码实例
May 20 Javascript
一篇文章看懂JavaScript中的回调
Jan 05 Javascript
JS操作JSON方法总结(推荐)
Jun 14 #Javascript
JavaScript Promise 用法
Jun 14 #Javascript
Javascript基础_简单比较undefined和null 值
Jun 14 #Javascript
Javascript缓存API
Jun 14 #Javascript
JS修改地址栏参数实例代码
Jun 14 #Javascript
JS获取地址栏参数的两种方法(简单实用)
Jun 14 #Javascript
Javascript基础_嵌入图像的简单实现
Jun 14 #Javascript
You might like
php学习之 循环结构实现代码
2011/06/09 PHP
解析PHP中VC6 X86和VC9 X86的区别及 Non Thread Safe的意思
2013/06/28 PHP
php实现数字补零的方法总结
2018/09/12 PHP
解决js正则匹配换行问题实现代码
2012/12/10 Javascript
使用GruntJS构建Web程序之Tasks(任务)篇
2014/06/06 Javascript
jquery图片播放浏览插件prettyPhoto使用详解
2014/12/19 Javascript
JavaScript实现控制打开文件另存为对话框的方法
2015/04/17 Javascript
jquery滚动特效集锦
2015/06/03 Javascript
基于jQuery通过jQuery.form.js插件使用ajax提交form表单
2015/08/17 Javascript
纯js三维数组实现三级联动效果
2017/02/07 Javascript
jquery实现自适应banner焦点图
2017/02/16 Javascript
微信小程序 图片绝对定位(背景图片)
2017/04/05 Javascript
AngularJS 实现点击按钮获取验证码功能实例代码
2017/07/13 Javascript
详解node.js中的npm和webpack配置方法
2018/01/21 Javascript
详解Angular5路由传值方式及其相关问题
2018/04/28 Javascript
jquery+css3实现的经典弹出层效果示例
2020/05/16 jQuery
[41:52]2018DOTA2亚洲邀请赛3月29日 小组赛A组 TNC VS OpTic
2018/03/30 DOTA
Python标准库之循环器(itertools)介绍
2014/11/25 Python
Python实现PS滤镜碎片特效功能示例
2018/01/24 Python
Ubuntu16.04/树莓派Python3+opencv配置教程(分享)
2018/04/02 Python
对Python中列表和数组的赋值,浅拷贝和深拷贝的实例讲解
2018/06/28 Python
python3实现多线程聊天室
2018/12/12 Python
Python中注释(多行注释和单行注释)的用法实例
2019/08/28 Python
Python基于Tensor FLow的图像处理操作详解
2020/01/15 Python
解决margin 外边距合并问题
2019/07/03 HTML / CSS
世界上最大的字体市场:MyFonts
2020/01/10 全球购物
优秀士兵先进事迹
2014/02/06 职场文书
电大会计学自我鉴定
2014/02/06 职场文书
小学教师国培感言
2014/02/08 职场文书
法制宣传日活动总结
2014/04/29 职场文书
2014保险公司个人工作总结
2014/12/09 职场文书
期末复习计划
2015/01/19 职场文书
建筑安全员岗位职责
2015/02/15 职场文书
未来,这5大方向都很适合创业
2019/07/22 职场文书
js Proxy的原理详解
2021/05/25 Javascript
Windows server 2012 R2 安装IIS服务器
2022/04/29 Servers