【Javascript】クエリパラメータなしのURLを取得するには?

Javascript

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がおすすめです。

コメント

タイトルとURLをコピーしました