如何在jquery ready函数中获取URL参数?

时间:2010-09-03 14:39:03

标签: javascript jquery

我有以下内容:

$(document).ready(function() {
window.location.href='http://target.SchoolID/set?text=';
});

因此,如果有人使用以下网址访问包含上述代码的网页:

Somepage.php?ID = ABC123

我希望ready函数中的text变量为:abc123

有什么想法吗?

3 个答案:

答案 0 :(得分:3)

你不需要jQuery。你可以用普通的JS

做到这一点
function getParameterByName( name ) //courtesy Artem
{
  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 decodeURIComponent(results[1].replace(/\+/g, " "));
}

然后您可以像这样获取查询字符串值:

alert(getParameterByName('text'));

还可以在此处查看其他方式和插件:How can I get query string values in JavaScript?

答案 1 :(得分:3)

查看这个问题的答案: How can I get query string values in JavaScript?

它将从查询字符串中为您提供id参数的值。

然后你可以做类似的事情:

$(document).ready(function() {
    var theId = getParameterByName( id)
    var newPath = 'http://target.SchoolID/set?text=' + theId
    window.location.href=newPath;
});

答案 2 :(得分:0)

为了帮助那些想要拥有多个变量并且在这里增强Moin答案的人们,我需要多个变量的代码:

function getParameterByName( name ) //courtesy Artem
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
  {
    if ((results[1].indexOf('?'))>0)
        return decodeURIComponent(results[1].substring(0,results[1].indexOf('?')).replace(/\+/g, " "));
    else
        return decodeURIComponent(results[1].replace(/\+/g, " "));
  }
}