URLのクエリ文字列をJavaScriptで指定して削除する
特に用途は思いつきませんが、作ったのでメモとして残します。
HTML
index.html
<html>
<head>
<title>ReplaceURL</title>
<script type="text/javascript" src="./replaceurl.js"></script>
</head>
<body></body>
</html>
JavaScript
replaceurl.js
// delete query string
// クエリストリング取得
var urlQueryString = document.location.search;
var replaceQueryString = "";
if (urlQueryString !== "") {
// クエリストリング毎に分割
var params = urlQueryString.slice(1).split("&");
// クエリストリング確認用
for (var i = 0; i < params.length; i++) {
var param = params[i].split("=");
var key = param[0];
var value = param[1];
// 該当するクエリストリングは無視
if (key === "delquery") continue;
// 新たにクエリストリングを作成
if (replaceQueryString !== "") {
replaceQueryString += "&";
} else {
replaceQueryString += "?";
}
replaceQueryString += key + "=" + value;
}
}
// URLに新しいクエリストリングを付与
history.pushState(null,null,replaceQueryString);
結果
JavaScriptの実行前後で、以下のように、query文字列が変更されます。
http://~/index.html?delquery=del&hoge=hoge
↓
http://~/index.html?hoge=hoge