zoukankan      html  css  js  c++  java
  • js提取url参数的几种方法(转)

    js提取url参数的几种方法

    第一,正则表达式,直接找出参数等号右边的值即可。但是,如果该参数后还有&就不可行。
        <script language="javascript">
        var str=window.location.href;
        var es=/clid=/;
         es.exec(str);
        var right=RegExp.rightContext;
        if(right=="1")
        {
         sub_nav_4.style.display = "block";
         li4.style.background = "#a1ca00";
         }
        </script>第二,把能找到的参数都付给argsarr数组,将来可以用argsarr[i]进行相应的访问,方法不错,太长,参数不容易记忆。      /**//**
           * 提取URL中的参数
          */
         function getArgs()
         {
           //加上substring的意义是去掉查询字符串中的?号。
           //var query = window.location.search.substring(1);
          
           //定义一个数组,用于存放取出来的字符串参数。
           var argsArr = new Object();
          
           //获取URL中的查询字符串参数
           var query = window.location.search;
            query = query.substring(1);
          
           //这里的pairs是一个字符串数组
           var pairs = query.split("&");//name=myname&password=1234&sex=male&address=nanjing
          
           for(var i=0;i<pairs.length;i++)
           {
             var sign = pairs[i].indexOf("=");
             //如果没有找到=号,那么就跳过,跳到下一个字符串(下一个循环)。
             if(sign == -1)
             {
               continue;
              }
            
             var aKey = pairs[i].substring(0,sign);
             var aValue = pairs[i].substring(sign+1);      
            
              argsArr[aKey] = aValue;
            }
          
           return argsArr;
          }
    第三,最简单的方法,类似第二种,不过没有创建数组存参数,可直接访问参数的名字,容易看懂。             <script language="javascript">
                function getarg()
                {
                var url = unescape(window.location.href);
                var allargs = url.split("?")[1];
                var args = allargs.split("&");
                for(var i=0; i<args.length; i++)
                {
                var arg = args[i].split("=");
                 eval('this.'+arg[0]+'="'+arg[1]+'";');
                 }
                 }
                var urlarg=new getarg();
                if(urlarg.clid=="1")
                    {
                     sub_nav_6.style.display = "block";
                     li6.style.background = "#a1ca00";
                     }
                </script>

  • 相关阅读:
    MySQL: MySQL数据学习专题
    安装Team Foundation Server 2012过程截图
    如果你喜欢一个程序员小伙
    ASP.net MVC: 一个开源的“留言系统”
    ASP.net MVC 中Security.FormsAuthentication验证用户的状态(匿名|已登录)
    Microsoft Visual Stadio 2012 Ultimate版安整过程安装体验
    win8全面开放民间下载地址!win8下载地址 win8下载链接
    【技术贴】解决右键没有新建文本文档|右键没有新建txt
    【技术贴】虚拟机网络上有重名的解决|虚拟机Net模式提示有重名
    【技术贴】利用myeclipse自动生成java类图|java源代码自动生成类图
  • 原文地址:https://www.cnblogs.com/ejiyuan/p/818757.html
Copyright © 2011-2022 走看看