Javascript pop状态无法正常工作
我有一些图像,当我单击某个特定图像时,url会更改为该id。但问题是Javascript pop状态无法正常工作,javascript,jquery,Javascript,Jquery,我有一些图像,当我单击某个特定图像时,url会更改为该id。但问题是我只能返回一次(而不是每次按“后退”按钮时重复相同的url),而前进按钮根本不起作用。知道我做错了什么吗 <img id="1" src=""> <img id="2" src=""> <img id="3" src=""> 为什么要在onpopstate上调用update(photo\u id)?您的update函数调用window.history.pushstate 这意味着当您按下“后
我只能返回一次
(而不是每次按“后退”按钮时重复相同的url),而前进按钮根本不起作用。知道我做错了什么吗
<img id="1" src="">
<img id="2" src="">
<img id="3" src="">
为什么要在onpopstate
上调用update(photo\u id)
?您的update
函数调用window.history.pushstate
这意味着当您按下“后退”按钮时,您正在将该URL推回历史堆栈。这就是为什么你一次又一次地得到相同的URL
例如:
访问您的页面/mysite/
单击图1,将url更改为/mysite/1
图像1的推送状态
单击图2,将url更改为/mysite/2
图像2的推送状态
按Back,将url更改为/mysite/1
此处出现图像1的推送状态
按Back,URL保持在/mysite/1
根据您打算执行的操作,您可能只需从onpopstate
中删除update(photo\u id)
。我用下面的修复程序对此进行了测试,结果成功了。我能够在Chrome上正确地来回移动
window.onpopstate = function(event) {
var photo_id= document.location.href.split('/').slice(-1)[0];
//Remove this line: update(photo_id);
}
不要将图像url数据存储到窗口的历史对象中。它不是为这个设计的。更改浏览器的ui体验不是一个好的做法。用户希望他的历史记录按钮能按设计工作。谢谢,这是一个愚蠢的错误,非常感谢。
window.onpopstate = function(event) {
var photo_id= document.location.href.split('/').slice(-1)[0];
//Remove this line: update(photo_id);
}