使用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 相关文章推荐
jquery图片滚动放大代码分享(2)
Aug 28 Javascript
基于PHP和Mysql相结合使用jqGrid读取数据并显示
Dec 02 Javascript
AngularJs入门教程之环境搭建+创建应用示例
Nov 01 Javascript
jQuery 如何实现一个滑动按钮开关
Dec 01 Javascript
Bootstrap和Java分页实例第二篇
Dec 23 Javascript
bootstrap vue.js实现tab效果
Feb 07 Javascript
基于vue2的table分页组件实现方法
Mar 20 Javascript
JavaScript实现图片切换效果
Aug 12 Javascript
利用yarn代替npm管理前端项目模块依赖的方法详解
Sep 04 Javascript
React Native 真机断点调试+跨域资源加载出错问题的解决方法
Jan 18 Javascript
详解Node.js模板引擎Jade入门
Jan 19 Javascript
微信小程序保持session会话的方法
Mar 20 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进程同步代码实例
2015/02/12 PHP
PHP双向链表定义与用法示例
2018/01/31 PHP
laravel框架中表单请求类型和CSRF防护实例分析
2019/11/23 PHP
jQuery Ajax 仿AjaxPro.Utility.RegisterTypeForAjax辅助方法
2011/09/27 Javascript
qTip2 精致的基于jQuery提示信息插件
2012/02/17 Javascript
JavaScript对象创建及继承原理实例解剖
2013/02/28 Javascript
js取消单选按钮选中并判断对象是否为空
2013/11/14 Javascript
对Jquery中的ajax再封装,简化操作示例
2014/02/12 Javascript
js校验表单后提交表单的三种方法总结
2014/02/28 Javascript
JS实现的五级联动菜单效果完整实例
2017/02/23 Javascript
微信小程序实战之仿android fragment可滑动底部导航栏(4)
2020/04/16 Javascript
Javascript实现从小到大的数组转换成二叉搜索树
2017/06/13 Javascript
JavaScript数组push方法使用注意事项
2017/10/30 Javascript
JS实现的类似微信聊天效果示例
2019/01/29 Javascript
5分钟教你用nodeJS手写一个mock数据服务器的方法
2019/09/10 NodeJs
基于JS判断对象是否是数组
2020/01/10 Javascript
Vue结合路由配置递归实现菜单栏功能
2020/06/16 Javascript
Python脚本实现自动将数据库备份到 Dropbox
2017/02/06 Python
django表单实现下拉框的示例讲解
2018/05/29 Python
安装好Pycharm后如何配置Python解释器简易教程
2019/06/28 Python
python版百度语音识别功能
2019/07/09 Python
Tensorflow读取并输出已保存模型的权重数值方式
2020/01/04 Python
Python使用Numpy模块读取文件并绘制图片
2020/05/13 Python
“型”走纽约上东区:Sam Edelman
2017/04/02 全球购物
美国女性运动零售品牌:Lady Foot Locker
2017/05/12 全球购物
C#基础面试题
2016/10/17 面试题
令人啧啧称赞的经理推荐信
2013/11/07 职场文书
小学运动会口号
2014/06/07 职场文书
2014党委书记四风对照检查材料思想汇报
2014/09/21 职场文书
学生通报表扬范文
2015/05/04 职场文书
检讨书之工作不认真
2019/08/14 职场文书
MySQL时间设置注意事项的深入总结
2021/05/06 MySQL
PyQt5结合QtDesigner实现文本框读写操作
2021/06/11 Python
关于redisson缓存序列化几枚大坑说明
2021/08/04 Redis
MySQL学习之基础操作总结
2022/03/19 MySQL
vue组件冲突之引用另一个组件出现组件不显示的问题
2022/04/13 Vue.js