使用Dojo获取查询字符串

问题描述 投票:5回答:4

全部,

用户将使用包含称为“查询类型”的查询字符串的URL。由于多种原因,我需要使用javascript(Dojo)读取此查询字符串并将其值保存到变量中。我已经做了大量的研究,试图找到如何做到这一点的方法,并且我发现了一些可能性,但是似乎没有一个实际上是在脚本中未进行硬编码的查询字符串中读取的。

您知道的任何例子或想法都会在这里帮助我吗?

谢谢!

javascript dojo query-string
4个回答
9
投票

您可以使用location.search从URL中访问参数,而无需Dojo Can a javascript attribute value be determined by a manual url parameter?

function getUrlParams() {

  var paramMap = {};
  if (location.search.length == 0) {
    return paramMap;
  }
  var parts = location.search.substring(1).split("&");

  for (var i = 0; i < parts.length; i ++) {
    var component = parts[i].split("=");
    paramMap [decodeURIComponent(component[0])] = decodeURIComponent(component[1]);
  }
  return paramMap;
}

然后,您可以执行以下操作从URL /hello.php?id=5&name=value中提取ID:>

var params = getUrlParams();
var id = params['id']; // or params.id

Dojo提供了http://dojotoolkit.org/reference-guide/dojo/queryToObject.html,它比我的简单实现要聪明一点,并且可以从重复的键中创建数组。

var uri = "http://some.server.org/somecontext/?foo=bar&foo=bar2&bit=byte";
var query = uri.substring(uri.indexOf("?") + 1, uri.length);
var queryObject = dojo.queryToObject(query);

//The structure of queryObject will be:
// {
//   foo: ["bar", "bar2],
//   bit: "byte"
// }

1
投票

在新的dojo中,它可以通过io-query访问:


0
投票

自dojo 0.9起,有一个更好的选择,queryToObject


0
投票

根据以上答案从新手那里演示(我会对此发表评论,但积分不足)https://enex.net/fiverr/examples/get_URL_parameter.html?param1=value1&param2=value2&param3=value3

© www.soinside.com 2019 - 2024. All rights reserved.