Javascript HTML5历史API返回按钮
我使用ajax调用来更新我页面的一部分,这是一个搜索功能。当我进行搜索时,我会更新url。示例:mysite.com/products变为mysite.com/products?search=blabla 但当我按下后退按钮时,只有url发生了变化,页面内容没有变化 这是我用来设置历史记录的函数:Javascript HTML5历史API返回按钮,javascript,html5-history,Javascript,Html5 History,我使用ajax调用来更新我页面的一部分,这是一个搜索功能。当我进行搜索时,我会更新url。示例:mysite.com/products变为mysite.com/products?search=blabla 但当我按下后退按钮时,只有url发生了变化,页面内容没有变化 这是我用来设置历史记录的函数: function setHistory(data, url) { var search = $("#Search").val(); url = url.replace('search_
function setHistory(data, url) {
var search = $("#Search").val();
url = url.replace('search_input', search);
history.pushState(data, "", url);
}
数据
是页面上更改的内容,url
是要推送到历史记录的新url。我做错什么了吗?如果我使用后退按钮,页面不应该自动更新吗?它在chrome和IE 10中都不起作用。您需要监听popstate
事件并将页面更改回原来的位置
addEventListener('popstate', function (event) {
event.state; // this contains the state data from `pustState`. Use it to decide what to change the page back to.
}
另请参见,.See@jalynn2-就我所知,它只是假装支持旧浏览器中的历史API,在用户返回时不会自动保存和恢复状态。@Quentin-是的,你是对的。我一直忘了,有些人很奢侈,只支持现代浏览器。我对使用历史API的旧浏览器的支持往往是“在这里,有一个常规链接,我将在服务器上构建页面”。这很有效。谢谢我还发现out window.onpopstate=function(event){…};同样有效。