我的网站上有一个类似于facebook的照片查看器的弹出模式。打开模态时,它显示来自另一个页面的内容,我想更改地址栏值和历史记录以显示此内容。
模式中有一个下拉列表,它将模态中的内容更改为其他页面的内容。发生这种情况时,我再次想要更改地址栏值和历史记录以显示页面已更改。
基本上,我想完全复制facebook的照片查看器的行为,您可以尝试:
Photos
我尝试创建一个JSFiddle来显示我在这里的位置,但JSFiddle显然不允许操纵历史记录。因此,我提出了my code online here,以及you can download from here。
几个关键点:
答案 0 :(得分:4)
您必须使用历史记录API,具体而言您必须使用history.pushState()
history API
因此,当用户打开模态时,您可以执行以下操作:
history.pushState(stateObj, "page 2", "image\id.html");
其中:stateObj是您通过历史记录的对象,第2页是标题,最后一个参数是您要修改的网址。
完成此操作后,您必须使用popstate event,因为浏览器后退和前进按钮不会重新加载页面。