JavascriptでクエリパラメータなしのURL(?以降を含まないURL)を取得する方法を紹介します。
クエリパラメータを含まないURLを取得する
方法1 location.hrefから抽出する
location.hrefではクエリパラメータまで含めたURLが取得されます。
そこで、location.hrefから?
の前までを抽出してやります。
window.location.href.substr(0, window.location.href.indexOf('?'))
これが最も手っ取り早い方法です。
方法2 originとpathnameを足し合わせる
もしくは、originとpathnameを組み合わせることでも、クエリパラメータを含まないURLを取得できます。
location.origin + location.pathname
しかし、URLに#が入っていて、#以下のパスまで取得したい場合はうまくいきません。location.originでは#より前までしか取得されないため、#以下が抜け落ちてしまいます。
VueやNuxtなどのSPAをhashモードで運用している場合は、#以下まで取得する必要があるでしょう。こういったときには使えないということになります。
ということで、方法1がおすすめです。
コメント