我希望能够做到以下几点。
点击$('#nxPage')
并按下浏览器后退按钮后,我想强制页面重新加载surl
$('#nxPage').click(function(e){
surl = "main/products.html?a=324&u=3285"
if (surl != window.location) {
window.history.pushState({ path: surl }, '', surl);
}
});
$(window).on('pushState', function(event) {
location.reload(true);
});
答案 0 :(得分:0)
您无法更改以前的历史记录条目,只能更改当前的replaceState()
条目。或者使用pushState()
推送一个新的。如果您希望以前的历史记录条目加载特定的URL,则应该先由Web浏览器当前显示的同一页面实例推送/替换它。
答案 1 :(得分:0)
试试这个:
$('#nxPage').click(function(e){
e.preventDefault();
surl = "main/products.html?a=324&u=3285";
history.pushState({ url: surl }, "", surl);
});
$(window).on("popstate", function(e) {
change(e.originalEvent.state);
});
function change(state) {
if(state === null) { // initial page
//do nothing
} else { // page added with pushState
location.reload(true);
}
}
(function(original) { // overwrite history.pushState so that it also calls
// the change function when called
history.pushState = function(state) {
change(state);
return original.apply(this, arguments);
};
})(history.pushState);
答案 2 :(得分:0)
您可以发送会话处理程序以强制重新加载。尽管使用JavaScript是不可能的......