用historypush替换URL

时间:2019-05-24 12:36:05

标签: javascript browser-history

我使用此代码来处理http://stackoverflow.com/a/10997390/11236中的内容fadeIns

function updateURLParameter(url, param, paramVal){
    var newAdditionalURL = "";
    var tempArray = url.split("?");
    var baseURL = tempArray[0];
    var additionalURL = tempArray[1];
    var temp = "";
    if (additionalURL) {
        tempArray = additionalURL.split("&");
        for (var i=0; i<tempArray.length; i++){
            if(tempArray[i].split('=')[0] != param){
                newAdditionalURL += temp + tempArray[i];
                temp = "&";
            }
        }
    }

    var rows_txt = temp + "" + param + "=" + paramVal;
    return baseURL + "?" + newAdditionalURL + rows_txt;
}

var newURL = updateURLParameter(window.location.href, 'locId', 'newLoc');
newURL = updateURLParameter(newURL, 'resId', 'newResId');

我使用以下方式更新网址:

window.history.replaceState('', '', updateURLParameter(window.location.href, "param", "value"));

它更改为我想要的URL-但未保存在URL历史记录中。因此,如果我以此更改URL并单击“后退”按钮,则该URL不会更改为最后一个状态。

但是我认为这是history.pushState在做什么?要在历史记录中保存URL,我需要更改什么?因此,当用户单击“后退”按钮时,内容会根据URL(如正常的URL路径)而变化。

0 个答案:

没有答案