1

次のコードを使用して、URLにパラメーターを追加しています。これは正常に機能していますが、パラメータがURLに追加されると、ページが再読み込みされます。ページをリロードせずにこの機能を使用したい。

function insertParam(key, value)
{
    key = escape(key); value = escape(value);

    var kvp = document.location.search.substr(1).split('&');


    var i=kvp.length; var x; while(i--) 
    {
        x = kvp[i].split('=');

        if (x[0]==key)
        {
                x[1] = value;
                kvp[i] = x.join('=');
                    alert('sdfadsf');
                break;
        }
    }

    if(i<0) {kvp[kvp.length] = [key,value].join('=');}

    //this will reload the page, it's likely better to store this until finished
    document.location.search = kvp.join('&'); 
    //alert(document.location.href);

}

次のようにページをリロードせずに、URLに複数のパラメータを追加したいと思います。

  • txt1
  • txt2
  • txt3
  • link1
  • link2
  • link3

URLが欲しい: ".... / search.php"

txt2をクリックした後、URLが必要です: ".... / search.php#t_2"

link2をクリックした後、URLが必要です: ".... / search.php#t_1&l_2"

4

2 に答える 2

6

これを行うことができるhistory.pushState(state, title, url)のは、HTML5機能であるを使用する場合のみです。

于 2012-05-04T08:22:45.567 に答える
0

location.hashの使用をより良いソリューションに置き換えることを目的とした新機能がありますpushState

 window.history.pushState(data, "Title", "/new-url");

詳細: http: //badassjs.com/post/840846392/location-hash-is-dead-long-live-html5-pushstate

于 2013-12-25T09:15:02.460 に答える