http://www.xxx.com/ceshi/a.html?name1=shuju1&name2=shuju2
A页面为主页面
b页面为a的嵌套页面
b页面为post发送页面 静态页面
需求,b页面加js截取?后面的数据,获取访客访问ay页面name1和name2的数据变成隐藏域准备post发送===================接收页面为asp的=============================================
name1=Trim(Request.Form("name1"))
name2=HTMLEncode(Trim(Request.Form("name2")))====================
一句话描述:框架页面截取主页面访问URL 问号后面的name1和name2  并转化为隐藏域进行发送。
我收取name1和name2的数据
例如:访问http://www.xxx.com/ceshi/a.html?name1=xxxxxa&name2=00685
截取收集
xxxxxa
00685↓
<input name="name1" id=" " type="hidden" />
<input name="name2" id=" " type="hidden" />

我收取xxxxxa
00685
 这俩数据
求请教详细代码

解决方案 »

  1.   

    function GetQueryString(name){
         var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
         var r = window.location.search.substr(1).match(reg);
         if(r!=null)return decodeURI(decodeURI(r[2])); return null;
    }
    var name1={"name1":GetQueryString("name1")};这样就能获取到了
      

  2.   


        function getQuery(){
              let res = {},query=window.location.href.split(/\?(?!.*\?)/)[1];
              if(query){
                let arr =query.split("&");
                for(let i = 0, len = arr.length; i < len; i++){
                  res[arr[i].split("=")[0]] = arr[i].split("=")[1]
                }
              }
              return res;
        }
       console.log(getQuery())单页面也能获取,同时防止单页面hash之前存在?
      

  3.   

    https://github.com/shadowOfCode/bee.js
    这里面就有两个方法
    parseQueryString: function(url)urlToObj:function(url)var result=Bee.UrlUtils.urlToObj(url);
      

  4.   


    function getParameterByName(name)
    {
        name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
        var regexS = "[\\?&]" + name + "=([^&#]*)";
        var regex = new RegExp(regexS);
        var results = regex.exec(window.location.search);
        if(results == null)
            return "";
        else
            return decodeURIComponent(results[1].replace(/\+/g, " "));
    }//截取url数据方法(采用正则表达式获取地址栏参数:( 强烈推荐,既实用又方便!))
    var getParam = function (name) {
        var search = document.location.search;
        var pattern = new RegExp("[?&]" + name + "\=([^&]+)", "g");
        var matcher = pattern.exec(search);
        var items = null;
        if (null != matcher) {
            try {
                items = decodeURIComponent(decodeURIComponent(matcher[1]));
            } catch (e) {
                try {
                    items = decodeURIComponent(matcher[1]);
                } catch (e) {
                    items = matcher[1];
                }
            }
        }
        return items;
    };function getParameterByName(name) {
        var match = RegExp('[?&]' + name + '=([^&]*)')
            .exec(window.location.search);
        return match && decodeURIComponent(match[1].replace(/\+/g, ' '));
    }//split拆分法
    function getUrlParams() {
        var result = {};
        var params = (window.location.search.split('?')[1] || '').split('&');
        for(var param in params) {
            if (params.hasOwnProperty(param)) {
                paramParts = params[param].split('=');
                result[paramParts[0]] = decodeURIComponent(paramParts[1] || "");
            }
        }
        return result;
    }