0

我在 url 中“发送”一些数据:

foo.htm?mydata

通过四处搜索,我知道我必须使用类似的东西:

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, " "));
}

但我对此有点困惑。有人可以帮我破译这个我只是希望最终结果放在mydata一个var中,例如:

var newvar = mydata

提前致谢!

4

2 回答 2

2

getParameterByName函数(我假设您是从这里得到的)是为了检索查询字符串值而编写的。这意味着,当它看起来像这样时,您可以从 URL 访问数据:

yourdomain.com/index.html?key=value&anotherkey=anothervalue

现在你可以这样做:

var firstKey = getParameterByName("key");
var secondKey = getParameterByName("anotherkey");

如您的问题中所述,您没有键/值对。如果是这种情况,并且您只需要之后的部分?,只需使用split方法使用以下内容:

var newvar = document.URL.split("?")[1];

不过,我确实建议您使用键/值方法,以防您将来想传递更多变量。

于 2012-08-02T08:06:10.873 回答
1

如果您需要大量 uri 解析,也许这个库很有趣:

https://github.com/medialize/URI.js

于 2012-08-02T07:55:51.037 回答