通常,当我们使用ajax从一个部分移动到另一个部分时,不会保存历史记录,这就是我们无法单击浏览器后退按钮的原因。我以表格格式显示数据并显示寻呼机链接,以便用户可以查看下一组数据,但最初的历史记录未被管理。我通过一个教程和实现来强制保存历史记录,这是由js库强制保存的jquery.ba-bbq.min.js
这种方式
$(window).trigger('hashchange');
when people click on back/forward button then haschange function is firing
$(window).bind('hashchange', function (e) {
var searchTerm = '';
var pageIndex = e.getState("pageIndex") || 0;
pageIndex = parseInt(pageIndex);
searchTerm = e.getState("keyword") || '';
if (searchTerm != null && searchTerm != '') {
$("input[id*='txtSearch']").val(searchTerm);
block();
Search(searchTerm, pageIndex);
}
});
这样,当用户点击寻呼机链接时,调用setHistory()
强制将数据插入历史记录
calling setHistory(1, SearchTerm);
function setHistory(pageIndex, SearchTerm) {
$.bbq.pushState({ pageIndex: pageIndex, keyword: SearchTerm });
}
我的代码工作正常,问题是在浏览器地址栏中更改了url。 所以我想知道有没有办法维护历史而不更改地址栏中的网址?
如果可能的话,指导我如何做到这一点,或者也可以指定另一个将保留历史但不会更改地址的库。感谢
答案 0 :(得分:1)
如果您希望能够使用“后退”按钮,则不会。 在进行页面加载或更改位置哈希时会存储历史记录。