将Url参数作为Javascript变量获取

时间:2012-06-14 19:56:44

标签: javascript variables parameters

  

可能重复:
  how to get GET and POST variables with JQuery?
  Get query string values in JavaScript

假设我的网站有网址http://www.akbrowser.tk/ds/?q=http://www.chess.com&r=http://www.blackle.com

(两个参数是URL)

我现在想在网站上获得两个javascript变量,其中包含两个网址的值。 (所以第一个变量是chess.com,第二个变量是blackle.com [当然它会有http和所有,但我只能发布一个超链接])

我该怎么做?

我在这个网站上看到了一些其他类似的问题,海报提供了一个我不理解的长解决方案(我认为它与查找'='并将其后的所有内容都包含在内)但在这种情况下它会将“http:// www.chess.com& r = http://www.blackle.com [没有空格]”作为变量之一。

我还看到了另一篇包含多个参数的帖子,比如我的,但是海报提供了一个很长的解决方案,所以由于我不理解它,我无法真正做到我想做的事。

是的,有人可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

试试这个功能:

function getQueryParam(href, paramName) {
    var query = href.substring(href.indexOf('?')+1);
    var params = query.split('&');
    for(var i = 0; i < params.length; i++) {
        var param = params[i].split('=');
        if(param.length > 1) {
            if(param[0] == paramName) {
                return param[1];
            }
        }
    }
    return null;
}

console.log(getQueryParam('http://www.akbrowser.tk/ds/?q=http://www.chess.com&r=http://www.blackle.com', 'r'));

答案 1 :(得分:-1)

function gup(name) {
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regexS = "[\\?&]" + name + "=([^&#]*)";
    var regex = new RegExp(regexS);
    var results = regex.exec(window.location.href);
    if (results == null)
        return "";
    else
        return results[1];
}

 var qString = gup("q");
 var rString = gup("r");

这是做正则表达式来查找传递给函数的任何[名称]。