使用 URL 设置变量
Setting a variable with URL
我部署了一个运行良好的 firebase 站点。我遇到的问题是下一个:
在我的 main.js
中,我有一个名为 company
的变量。有没有办法根据 URL
设置该变量?例如:
site-ce207.firebaseapp.com/company=01
或者你知道别的方法吗?
正如 Mouser 指出的那样,这是无效的:
site-ce207.firebaseapp.com/company=01
然而,这不是:
site-ce207.firebaseapp.com#company=01&id=5
而且很容易解析:
var queries=location.hash.slice(1).split("&").map(el=>el.split("="));
这样查询 now.looks:
[
["company","01"],
["id","5"]
]
所以要解决它可能会使用一个对象:
var getQuery={};
queries.forEach(query=>getQuery[query[0]]=query[1]);
所以现在很容易得到某个密钥:
console.log(getQuery["company"]);
或者更容易使用地图的新方法:
var query=new Map(queries);
console.log(query.get("company"));
我很久以前就找到了一个简单的函数来处理这个问题。我做了一些修改以通过这样做来获取值。
function param(name) {
name = name.replace(/[\[]/, "\[").replace(/[\]]/, "\]");
var regex = new RegExp("[\?&]" + name + "=([^&#]*)"),
results = regex.exec(location.search);
return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
然后使用我执行以下操作的值
var myCity = param('cityid');
发出类似以下内容时:http://example.com/?cityid=Guatemala
myCity 在我的应用程序中将具有 'Guatemala' 的值。
我部署了一个运行良好的 firebase 站点。我遇到的问题是下一个:
在我的 main.js
中,我有一个名为 company
的变量。有没有办法根据 URL
设置该变量?例如:
site-ce207.firebaseapp.com/company=01
或者你知道别的方法吗?
正如 Mouser 指出的那样,这是无效的:
site-ce207.firebaseapp.com/company=01
然而,这不是:
site-ce207.firebaseapp.com#company=01&id=5
而且很容易解析:
var queries=location.hash.slice(1).split("&").map(el=>el.split("="));
这样查询 now.looks:
[
["company","01"],
["id","5"]
]
所以要解决它可能会使用一个对象:
var getQuery={};
queries.forEach(query=>getQuery[query[0]]=query[1]);
所以现在很容易得到某个密钥:
console.log(getQuery["company"]);
或者更容易使用地图的新方法:
var query=new Map(queries);
console.log(query.get("company"));
我很久以前就找到了一个简单的函数来处理这个问题。我做了一些修改以通过这样做来获取值。
function param(name) {
name = name.replace(/[\[]/, "\[").replace(/[\]]/, "\]");
var regex = new RegExp("[\?&]" + name + "=([^&#]*)"),
results = regex.exec(location.search);
return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
然后使用我执行以下操作的值
var myCity = param('cityid');
发出类似以下内容时:http://example.com/?cityid=Guatemala
myCity 在我的应用程序中将具有 'Guatemala' 的值。