我正在运行单页应用程序,它通过AJAX加载所有<a>
个链接。这是一个轻微的视觉烦恼,但自从我通过window.onpopstate
和window.history.pushState()
从#hash标签导航切换到正确的历史记录后,系统中的许多点击将导致光标“加载”,就好像它是标准的非AJAX页面。在Windows上,我得到带有加载符号的指针。这与以前只是将AJAX加载到容器中并且永远不会更改光标的情况形成对比。我觉得这“打破了”作为单页应用程序的沉浸感。
我的代码很简单:
$('body').on("click", 'a', function() {
var url = $(this).attr('href');
$.ajax({type:'GET', url: url, success: function(data) {
window.history.pushState({}, url, url);
$('#content').html(data);
}});
return false;
}
});
window.onpopstate = function(event) {
run_url();
};
这适用于Firefox。如果我完全删除window.onpopstate,它就不再这样做了,但我找不到onpopstate的替代方法。