zoukankan      html  css  js  c++  java
  • js获取url参数 兼容某些带#url

    网上有大把现成的代码,不过有点小小的瑕疵

    例如目前最流行的 正则法:  

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

    但是当URL中 包含#的时候会失效,例如 http://abc.def.com/kkk/#dfff?id=123344

    原因是在获取?后的字符串使用了:

    window.location.search
    

    但是现在因为有了# 而# 后面的部分作为了 hash值, 所以用 loaciton.search取不到值了

    所以 要兼容这种情况就不能再这样取,用原始的办法取一次,

    兼容版如下:

    function getArgument(_arg) 
    {
    	var _t=window.location.href.split("?")
    	if(_t.length>1)
    	{
    	 	var reg = new RegExp("(^|&)"+ _arg +"=([^&]*)(&|$)");
         	     var r = _t[1].match(reg);
         	     if(r!=null)return  unescape(r[2]); return "";
    	}
    	return "";
    }
    

    注意 我这里在返回结果是进行了unescape 解码,如果不需要请删除!

    没有值的时候返回"";

  • 相关阅读:
    模拟登录
    服务器的
    多线程爬虫
    新浪微博
    。。
    ** turtle模块和random模块
    收藏链接python--向大神学习
    126邮箱发送邮件测试1
    LabVIEW版本控制(转)
    正交编码器单端转差分
  • 原文地址:https://www.cnblogs.com/luoeeyang/p/5070904.html
Copyright © 2011-2022 走看看