我有3个相关问题要问
在window.addEventListener('popstate', function(e)
上,我如何知道按下的按钮是forward()
还是back()
按钮。例如
window.addEventListener('popstate', function(e){
var buttonDirection = // the button that was clicked
if(buttonDirection == history.back()){
// blah blah blah
} else if(buttonDirection == history.forward()){
// blah blah blah
}
})
我希望pushState
成功ajax
以便更改页面内容以便我这样做,我真的不知道它是否是最好的方法
$.ajax({
url: 'path.php',
success: function(data){
$('html').html(data);
history.pushState('', '', 'path.php');
var pushed = 'yes';
}
})
现在问题出在ajax
成功和pushed = yes
之后,我想听一下事件,因为点击后退按钮以检索上一页内容,因为在history.pushState
之后forward()
按钮被禁用,所以我这样做了
window.addEventListener('popstate', function(e){
if(pushed == 'yes'){
// run code to restore back previous page content
$.ajax({
url: 'current_page.php',
success: function(data) {
$('html').html(data);
pushed = 'yesBack';
}
});
}
// now I want to run another code to replace the page content again if the forward button is clicked and pushed is == yesBack
// that's where my reason for question 1 come out
// so how do I know if the button that was clicked is the forward
})
如果您在移动浏览器上学习Facebook,您将会观察到这一点:
history.pushState
会被触发,ajax
请求会用于更改页面内容,现在该内容将显示您点击的图片。< / LI>
ajax
请求来检索上一页内容。ajax
请求更改页面内容以再次显示图像。history.pushState
并且ajax
请求用于检索新图像,无论图像多少滚动后,如果再次单击后退按钮,则会转到第一页,即个人资料相册页面。现在我的第三个问题是如何在我自己的网页上实现所有这些观察。
我尝试查看Facebook源代码,但我无法理解或找到触发history.pushState
的任何地方。请有人回答我列出的任何问题或我可以阅读的文件以获得答案
答案 0 :(得分:1)
根据您的第一个问题,与此question
有关你必须自己实施,这很容易。