我已經部署了火力網站工作正常。我的問題是下一個: 裏面我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來完成的事情,後者可能會更習慣。 –