【JavaScript】URLフラグメントのハッシュマーク(#)もろともlocation.hashで削除する
JSでURLフラグメントを制御する際はlocation.hash
を使用するかと思うが、ハッシュ文字列を削除する場合に少し詰まった。
location.hash; // example.com#xxxlocation.hash = ''; // example.com#
というのも上記のように空文字を代入するだけだと、URLにハッシュマーク(#)が残ってしまいフラグメントを丸ごと削除できない。
解決法
history.pushState({}, '', location.pathname); // example.com
location.pathname
でURLフラグメント無しのパスが取得できるので、それをhistory.pushState()
する。