【发布时间】:2011-08-23 07:45:12
【问题描述】:
我在我的网站中进行了一些 ajax 调用,并尝试实现历史 API 来实现它,以便我可以使用浏览器历史浏览它。这是“返回按钮”的代码:
$(document).ready(function(){
window.addEventListener("popstate", function(e) {
//Flag I use to not fire it on the first page load
if (!ajaxhistory)
return;
do_my_ajaxs_things();
}, false);
});
但是我有两个问题
1) 当我第一次在地址栏中键入 URL 以加载页面时。这也会触发 ajax 调用,这显然是不受欢迎的。不需要ajax,因为我必须加载整个页面。这个,我已经设法用一个标志来解决它,但我想知道是否有更优雅的方法来做到这一点
2) 假设我在“google.com”中并输入我的 URL“www.mysite.com”,然后我进行 ajax 调用并转到“www.mysite.com/contacts”。如果我按一次 BACK 按钮,我会转到“www.mysite.com”,但如果我再次按 BACK,我仍然会在“www.mysite.com”,我发现自己无法返回 google .我该如何解决这个问题?
感谢所有帮助。谢谢。
【问题讨论】:
-
现在有很多解释,但最重要的问题没有得到解答:您要达到什么目的?为什么要在
popstate处理程序中启动 AJAX 调用? -
我想要实现的是,当我使用 ajax 加载页面时,我可以使用后退和前进按钮进行浏览
标签: javascript html browser-history