我需要使用这个ajax方法制作后退和前进按钮 这段代码工作正常,浏览器上的URL也应该更改为 但是当你点击后退和前进按钮时,没有任何事情发生
(function(){
function clickNav(e){
e.preventDefault();
var href = $(this).attr('href');
history.pushState(null, null, href);
$.ajax({
url: href,
dataType: 'html',
cache: false
}).done(function(html){
var $html = $(html);
$('title').html($html.filter('title').text());
$('#content').replaceWith($html.find('#content'));
$('#nav').replaceWith($html.find('#nav'));
$('#nav li a').on('click',clickNav);
});
}
$('#nav li a').on('click',clickNav);
})();
答案 0 :(得分:1)
我今天必须处理这件事。以下适用于我(目前在Win 7中的四个浏览器上测试过)...
//CHECK FOR ADDRESS BAR CHANGE EVERY 500ms
var wwcint = window.setInterval(function(){
if(window.last_location_href == undefined) {
window.last_location_href = document.location.href;
} else if(window.last_location_href != document.location.href) {
window.last_location_href = document.location.href;
//DO WHATEVER YOU NEED TO DO TO LOAD THE CORRECT CONTENT
someFunctionToLoadTheContent(document.location.href);
}
}, 500);
答案 1 :(得分:0)
这是因为你的历史是空的。为此你需要使用
history.pushState();
之后我的按钮开始工作