我做了一个ajax网站,所以我的着装页面保留为index.php,所以为了让我的网页像www.example / about.html那样穿,我使用history.pushState这样它运作良好,礼服在我改变时点击链接按钮,我的问题是我无法使用浏览器的刷新按钮或后退按钮(我的地址更改但不是页面)。
这是我的ajax页面:
$(document).ready(function(){
$("#menu a").click(function(){
var page=$(this).attr("href");
$.ajax({
url: "pages/"+page,
cache:false,
success:function(html){
afficher(html);
history.pushState({key : 'value'}, 'hash', page);
},
error:function(XMLHttpRequest,textStatus, errorThrown){
afficher("erreur lors du chagement de la page");
}
});
return false;
});
$('#container').on('click', '.vs-transform a', function(){
//Second ajax request
page=$(this).attr("href");
$.ajax({
url: "pages/"+page,
cache:false,
success:function(html){
afficher(html);
history.pushState({key : 'value'}, 'hash', page);
},
error:function(XMLHttpRequest,textStatus, errorThrown){
afficher("erreur lors du chagement de la page");
}
});
return false;
});
window.onpopstate = function(event){
if(event.state === null){
alert('return');
}
};
});
function afficher(data){
$("#container").fadeOut(500,function(){
$("#container").empty();
$("#container").append(data);
$("#container").fadeIn(500);
});
}
答案 0 :(得分:0)
history.pushstate旨在将网址添加到浏览器网址历史记录中,以便在您点击后退或转发按钮时,恢复已保存的网页状态和网页内容
但是,当您单击刷新按钮时,浏览器只会重新加载已保存的URL(忽略历史记录中保存的页面)。如果这是一个假网址,您将收到404页面未找到错误。
从本质上讲,推送到历史记录的所有网址都应该是可由服务器处理的有效网址(假设您要允许按下刷新按钮)。