使用Dojo获取查询字符串
Get Query String with Dojo
用户将碰到一个包含一个名为inquirytype
的查询字符串的URL。出于多种原因,我需要用javascript (Dojo)读取这个查询字符串,并将其值保存到一个变量中。我已经做了大量的研究,试图找到如何做到这一点,我发现了一些可能性,但他们似乎都没有实际读取查询字符串,不是硬编码在脚本的某个地方。
您可以使用location从url访问参数。搜索没有Dojo可以一个javascript属性值是由手动url参数确定?
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
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:
require([
"dojo/io-query",
], function (ioQuery) {
GET = ioQuery.queryToObject(decodeURIComponent(dojo.doc.location.search.slice(1)));
console.log(GET.id);
});
自dojo 0.9以来,有一个更好的选择,queryToObject。
dojo.queryToObject(query)
相关文章:
- 如何有效地将游戏数据存储在URL查询字符串中
- 从查询字符串参数推断出正确的数据类型
- AngularJS:获取链接中没有哈希的查询字符串值
- AngularJS,如何更改查询字符串
- Datatables查询url字符串:需要regex来修复url解析
- 如何将activeadmin查询字符串传递给batch_action
- 如何从查询字符串中的输入字段发回文本
- Django在使用AJAX时没有接收到新的查询字符串
- 使用查询字符串方法清除浏览器缓存
- 用于刷新的Javascript更改查询字符串
- 我想将查询字符串变量添加到JSON名称/值对中
- 将查询字符串值从页面传递 asp.net 到 iframe
- jqueryajax生成查询字符串,如果未定义则不通过
- 如何将查询字符串传递到HTML框架
- iron路由器将参数添加到字符串中,并添加一个查询
- 使用字符串查询此选择器
- 替换URL'中的字符串查询;s与Javascript(有条件)
- 基于匹配或正则表达式的查询字符串查询Mongo
- 简单json字符串查询
- 向Django传递一个布尔字符串查询