我已经部署了一个运行良好的firebase网站。我遇到的问题是下一个问题:
在main.js
内,我有一个名为company
的变量。有没有办法根据URL
设置该变量?例如:
site-ce207.firebaseapp.com/company=01
或者你知道另一种方式吗?
答案 0 :(得分:3)
正如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("="));
现在查询。看起来像这样:
[
["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"));
答案 1 :(得分:0)
我有一个很久以前发现的简单功能来处理这个问题。我修改了一下以通过这样做来获得价值。
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'在我的应用程序中。