9

たとえばhistory.pushState({}, "", link);myが関数で変更されているリンクがある場合、リンク全体を変更する代わりにwith関数を変更する方法はありますか?linkpage.php?value=1&value2=2value2pushState()

4

3 に答える 3

5

履歴オブジェクトにエントリを追加せずに URL を変更しようとしている場合は、 を試すことができますreplaceState

history.replaceState({value: 1, value2: X}, "title", "page.php");
于 2012-05-02T21:17:22.410 に答える
2

この便利な関数を使用して、クエリ文字列パラメーターの値を変更できます。

function updateParam(url, param, value)
{  
    var re = new RegExp(param+"(.+?)(&|$)","g");

    return url.replace(re, param+'='+value)  
}
于 2012-05-02T20:35:15.357 に答える
2

いいえ、クエリ文字列は URL の一部であるためです。サーバーのためにこれらの値を渡す必要が本当にない場合は、それらを履歴の状態オブジェクト自体に含めることができます。その後、状態オブジェクトだけを で変更できますpushState()。例えば:

history.pushState({value: 1, value2: 2}, "Title", 'page.php');
history.pushState({value: 1, value2: 'new value'}, "Title");
于 2012-05-02T20:25:20.690 に答える