使用Dojo获取查询字符串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Dojo获取查询字符串相关的知识,希望对你有一定的参考价值。

全部,

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

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

谢谢!

答案

您可以使用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"
// }
另一答案

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

另一答案

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

另一答案

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

以上是关于使用Dojo获取查询字符串的主要内容,如果未能解决你的问题,请参考以下文章

小部件上的 dojo 查询

获取 Dojo 单选按钮值?

如何使用 dojo 和 struts2 在对话框中显示异步获取的信息?

如何用 Dojo 组织异步代码?

Android - 将搜索传递给片段

使用 dojo.xhrPost 发布 JSON 字符串