cmp*_*ger 3 ajax jquery html5 pushstate
我在试验history.pushstate事件时遇到了一些问题.我进行了设置,以便页面的url成为通过AJAX加载的页面的实际URL,并且可以正常工作.
我明白它应该自动创建一个历史记录,加载以前加载的页面.不幸的是,帽子没有发生,当我向后点击时,网址确实会发生变化但页面没有变化.你能帮助我吗?这是我的简化代码:
function hijackLinks() {
$('a').live("click", function (e) {
e.preventDefault();
loadPage(e.target.href);
direction = $(this).attr('class');
});
}
function loadPage(url) {
if (url === undefined) {
$('body').load('url', 'header:first,#content,footer', hijackLinks);
} else {
$.get(url, function (data) {
$('body').append(data);
window.history.pushState(url, url, url);
if (direction === "leftnav") {
//DO STUFF
}
if (direction !== "leftnav") {
//DO STUFF
}
setTimeout(function () {
//DO STUFF
},1000);
});
}
}
$(document).ready(function () {
loadPage();
});
Run Code Online (Sandbox Code Playgroud)
cmp*_*ger 14
想出来了:D,好吧.至少它的工作原理:)
我刚才补充道
window.addEventListener("popstate", function(e) {
loadPage(location.pathname);
});
Run Code Online (Sandbox Code Playgroud)
到页面的末尾:)