使用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 相关文章推荐
一段非常简单的让图片自动切换js代码
Nov 10 Javascript
jQuery学习总结之元素的相对定位和选择器(持续更新)
Apr 26 Javascript
了解一点js的Eval函数
Jul 26 Javascript
点击标签切换和自动切换DIV选项卡
Aug 10 Javascript
jQuery中contents()方法用法实例
Jan 08 Javascript
深入理解JavaScript系列(42):设计模式之原型模式详解
Mar 04 Javascript
最棒的Angular2表格控件
Aug 10 Javascript
浅谈使用splice函数对数组中的元素进行删除时的注意事项
Dec 04 Javascript
Bootstrap标签页(Tab)插件使用方法
Mar 21 Javascript
详解Vue取消eslint语法限制
Aug 04 Javascript
vue中使用protobuf的过程记录
Oct 26 Javascript
vue过滤器用法实例分析
Mar 15 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
菜鸟修复电子管记
2021/03/02 无线电
php实现mysql数据库操作类分享
2014/02/14 PHP
PHP获取服务器端信息的方法
2014/11/28 PHP
php采集中国代理服务器网的方法
2015/06/16 PHP
Yii中CGridView禁止列排序的设置方法
2016/07/12 PHP
php 使用redis锁限制并发访问类示例
2016/11/02 PHP
PHP实现原生态图片上传封装类方法
2016/11/08 PHP
laravel Model 执行事务的实现
2019/10/10 PHP
window.location.href的用法(动态输出跳转)
2014/08/09 Javascript
深入浅析同源策略和跨域访问
2015/11/26 Javascript
JS简单实现仿百度控制台输出信息效果
2016/09/04 Javascript
BootStrap 导航条实例代码
2017/05/18 Javascript
浅析js中mvvm模式实现的原理
2018/10/06 Javascript
使用p5.js实现动态GIF图片临摹重现
2019/10/23 Javascript
在vue中把含有html标签转为html渲染页面的实例
2019/10/28 Javascript
微信小程序网络请求实现过程解析
2019/11/06 Javascript
JS继承定义与使用方法简单示例
2020/02/19 Javascript
JS面向对象编程——ES6 中class的继承用法详解
2020/03/03 Javascript
Node Express用法详解【安装、使用、路由、中间件、模板引擎等】
2020/05/13 Javascript
Python六大开源框架对比
2015/10/19 Python
Python基于csv模块实现读取与写入csv数据的方法
2018/01/18 Python
关于python写入文件自动换行的问题
2018/06/23 Python
Python hashlib加密模块常用方法解析
2019/12/18 Python
python软件都是免费的吗
2020/06/18 Python
Python pexpect模块及shell脚本except原理解析
2020/08/03 Python
基于Python实现全自动下载抖音视频
2020/11/06 Python
阿迪达斯俄罗斯官方商城:adidas俄罗斯
2017/03/08 全球购物
中国跨境电子商务网站:NewFrog
2018/03/10 全球购物
JMS中Topic和Queue有什么区别
2013/05/15 面试题
教师实习自我鉴定
2013/12/18 职场文书
感恩母亲节活动方案
2014/03/04 职场文书
考试保密承诺书
2014/08/30 职场文书
求职自我评价范文100字
2014/09/23 职场文书
政风行风整改方案
2014/10/25 职场文书
2014年城市管理工作总结
2014/12/02 职场文书
WCG2010 星际争霸决赛 Flash vs Goojila 1 星际经典比赛回顾
2022/04/01 星际争霸