正常に動作するfirebaseサイトを配備しました。私が持っている問題は次です: 私のmain.js
の中に私はcompany
と呼ばれる変数があります。その変数をURL
に応じて設定する方法はありますか?たとえば、URLを使用して変数を設定する
site-ce207.firebaseapp.com/company=01
または別の方法を知っていますか?
正常に動作するfirebaseサイトを配備しました。私が持っている問題は次です: 私の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をこのように:
だから、オブジェクトを使用行うことができます解決する:だから
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」を使用します。値はregexや 'location'オブジェクトのメソッドを使って取得できます。これらのオプションは、使用する方法ではありません。だから副作用が発生する可能性があります。 – Mouser
これをパラメータとして渡す代わりに、 'site-ce207.firebaseapp.com/company/01'のパスに識別子を渡すことも検討してください。このURLで何を達成しようとしているかによって、後者はより慣れ親しんでいるかもしれません。 –