附加在URL参数无需重新加载页面(Append parameter in url without r

2019-07-29 06:10发布

我使用下面的代码追加参数去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);

}

我想添加多个PARAMS无需重新加载页面喜欢的网址:

  • TXT1
  • TXT2
  • txt3
  • 链接1
  • LINK2
  • LINK3

我想网址:“...... / search.php中”

点击TXT2后,我想网址:” ...... / search.php中#T_2"

点击链接2之后,我想网址:” ...... / search.php中#T_1和L_2"

Answer 1:

你只能做到这一点使用history.pushState(state, title, url)这是一个HTML5特性。



Answer 2:

还有一项新功能,旨在取代使用location.hash更好的解决方案: pushState

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

更多信息: http://badassjs.com/post/840846392/location-hash-is-dead-long-live-html5-pushstate



文章来源: Append parameter in url without reloading page