使用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 相关文章推荐
getElementById在任意一款浏览器中都可以用吗的疑问回复
May 13 Javascript
jquery图片不完全按比例自动缩小的简单代码
Jul 29 Javascript
HTML长文本截取含有HTML代码同样适用的两种方法
Jul 31 Javascript
浅谈JavaScript 的执行顺序
Aug 07 Javascript
浅谈bootstrap源码分析之tab(选项卡)
Jun 06 Javascript
jQuery制作圣诞主题页面 更像是爱情影集
Aug 10 Javascript
js 定位到某个锚点的方法
Nov 19 Javascript
基于jquery二维码生成插件qrcode
Jan 07 Javascript
javascript使用btoa和atob来进行Base64转码和解码
Mar 20 Javascript
Vue之mixin全局的用法详解
Aug 22 Javascript
对angular4子路由&amp;辅助路由详解
Oct 09 Javascript
重学JS 系列:聊聊继承(推荐)
Apr 11 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
浅析Laravel5中队列的配置及使用
2016/08/04 PHP
php中foreach结合curl实现多线程的方法分析
2016/09/22 PHP
PHP基于curl post实现发送url及相关中文乱码问题解决方法
2017/11/25 PHP
php成功操作redis cluster集群的实例教程
2019/01/13 PHP
Laravel5.5+ 使用API Resources快速输出自定义JSON方法详解
2020/04/06 PHP
Stop SQL Server
2007/06/21 Javascript
写了一个layout,拖动条连贯,内容区可为iframe
2007/08/19 Javascript
js 颜色选择器(兼容firefox)
2009/03/05 Javascript
DIV菜单层实现代码
2010/11/19 Javascript
『JavaScript』限制Input只能输入数字实现思路及代码
2013/04/22 Javascript
控制页面按钮在后台执行期间不重复提交的JS方法
2013/06/24 Javascript
JS+CSS实现的经典圆角下拉菜单效果代码
2015/10/21 Javascript
JS实现的表格行鼠标点击高亮效果代码
2015/11/27 Javascript
一个字符串中出现次数最多的字符 统计这个次数【实现代码】
2016/04/29 Javascript
Javascript之面向对象--方法
2016/12/02 Javascript
利用angularjs1.4制作的简易滑动门效果
2017/02/28 Javascript
Angular中的$watch、$watchGroup、$watchCollection
2017/06/25 Javascript
OpenLayers3加载常用控件使用方法详解
2020/09/25 Javascript
Python使用urllib模块的urlopen超时问题解决方法
2014/11/08 Python
Python制作简易注册登录系统
2016/12/15 Python
Python实现获取命令行输出结果的方法
2017/06/10 Python
python 不以科学计数法输出的方法
2018/07/16 Python
浅谈Python的list中的选取范围
2018/11/12 Python
Python小工具之消耗系统指定大小内存的方法
2018/12/03 Python
解决yum对python依赖版本问题
2019/07/05 Python
基于python实现自动化办公学习笔记(CSV、word、Excel、PPT)
2019/08/06 Python
jupyter notebook 实现matplotlib图动态刷新
2020/04/22 Python
HTML5 SEO优化的一些建议
2020/08/27 HTML / CSS
美国指甲油品牌:Deco Miami
2017/01/30 全球购物
NOTINO英国:在线购买美容和香水
2020/02/25 全球购物
将一个数的从第5位开始的7个数取出,其余位置0
2016/05/26 面试题
安全生产投入制度
2014/01/29 职场文书
英语演讲开场白
2015/05/29 职场文书
会议室使用管理制度
2015/08/06 职场文书
结婚喜宴祝酒词
2015/08/10 职场文书
防震减灾主题班会
2015/08/14 职场文书