JavaScript

URLのクエリ文字列をJavaScriptで指定して削除する

More than 1 year has passed since last update.

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