使用URL设置变量

时间:2017-07-14 09:14:47

标签: javascript firebase web firebase-hosting

我已经部署了一个运行良好的firebase网站。我遇到的问题是下一个问题: 在main.js内,我有一个名为company的变量。有没有办法根据URL设置该变量?例如:

site-ce207.firebaseapp.com/company=01

或者你知道另一种方式吗?

2 个答案:

答案 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'在我的应用程序中。