我已经部署了火力网站工作正常。我的问题是下一个: 里面我main.js
我有一个名为company
变量。有没有办法根据URL
设置该变量?例如:设置一个变量与URL
site-ce207.firebaseapp.com/company=01
或者你知道另一种方式吗?
我已经部署了火力网站工作正常。我的问题是下一个: 里面我main.js
我有一个名为company
变量。有没有办法根据URL
设置该变量?例如:设置一个变量与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将有“危地马拉”在我的应用程序的价值。
是的,你已经使用但是例如,将无法正常工作。使用'http:// www.example.com /#company = 01'或'http://www.example.com/?company=01将会工作。您可以使用正则表达式或'location'对象中的方法获取值。请注意,这些选项不是他们打算如何使用的。所以可能会出现副作用。 – Mouser
而是将它作为一个参数,也可以考虑将它们传递路径'site-ce207.firebaseapp.com /公司/ 01'标识符。根据你想用这个URL来完成的事情,后者可能会更习惯。 –