使用JavaScript访问网址中的值

时间:2013-06-03 08:17:00

标签: javascript html

我只需要从网址获取 idi 变量的值。

除了拆分“&”之外,以下代码中的一切正常。

示例:如果这是网址:www.site.com/page?idi=22&selse=88

我想从网址获取 idi 参数的值,并将其打印为隐藏文字输入字段的值。

<script>
q=window.location.search.substring(1);
idi="idi";
sq=q.split("&");
l=sq.length;
for(i=0;i<=l;i++)
{  

qv=sq[i].split("="); 
if(qv[0]==idi)
{
qvr=qv[1].Split('&');
document.write(<input type='text' value='"+qvr[0]+"' name='get-idi'/>");
break;

}
}

</script>

改进或帮助我为此形成一个脚本。谢谢!

4 个答案:

答案 0 :(得分:0)

在这里,这应该可以帮到你:

function getParams(url) {

  var result = {}
    , params = /[?&]([^?&=]+)=([^?&]+)?/g;

  decodeURIComponent(url).replace(params, function(_,key,val) {
    result[key] = isNaN(val) ? val : +val;
  });

  return result;
}

console.log(getParams('www.site.com/page?idi=22&selse=88'));
//^= {idi: 22, selse: 88}

答案 1 :(得分:0)

这应该可以正常使用

var GET = function(key){
    var str = window.location.search.substr(1);
    var array = str.split('&');
    var map = {};

    for (var i = 0; i < array.length; ++i) {
        var temp = array[i].split('=');
        map[temp[0]] = decodeURIComponent(temp[1]);
    }

    delete map[''];

    return (key !== undefined)? map[key] : map;
}

答案 2 :(得分:0)

如果您只是尝试获得一个特定值idi,那么您可以使用简单的正则表达式:

if ((match = window.location.match(/[?&]idi=(\d+)/)) != null){
    alert('IDI: ' + match[1]);
}

正则表达式将idi=后的任何数字捕获到match[1]

答案 3 :(得分:0)

试试这个,

function getUrlParams(url, key) {
    var vars = [], hash;
        var hashes = url.slice(url.indexOf('?') + 1).split('&');
        for (var i = 0; i < hashes.length; i++) {
            hash = hashes[i].split('=');
            vars.push(hash[0]);
            vars[hash[0]] = hash[1];
        }
        return vars[key];
    }

alert(getUrlParams("www.site.com/page?idi=22&selse=88", "idi"));

演示:http://jsfiddle.net/EscBg/

或者您可以使用https://github.com/allmarkedup/jQuery-URL-Parser

JQuery插件做同样的工作,例如检索 idi 查询字符串参数的值,你可以使用

$.url().param('idi');

更新:如果你想使用window.location.href试试这个

function getUrlParams(key) {
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for (var i = 0; i < hashes.length; i++) {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars[key];
}