页面重新加载后未触发window.onpopstate

时间:2018-07-09 07:44:39

标签: javascript django html5 html5-history

我有两个带有网址的基本页面

http://localhost:8000/page-a

http://localhost:8000/page-b

我正在使用html5 history api并遵循this教程。

唯一的区别是我添加了数据的api端点,例如

http://localhost:8000/api/page-a

http://localhost:8000/api/page-b,在pushState()中。

我可以轻松地在历史记录中来回移动,但是在重新加载页面并来回移动时,window.popstate不再触发。而是直接按照控制台中的说明导航到page-apage-b

demo中,我重新加载了页面,但是仍然可以正常工作。这是因为必须使用AJAX提取数据吗? (但是在本教程中,它说AJAX很好)

编辑

我忘了提到页面是动态创建的(使用Django)。是因为页面的动态性质吗?


已解决

我应该添加http://localhost:8000/api/page-a/之类的状态的网址。在页面重新加载时,Django始终将URL http://localhost:8000/page-a解析为http://localhost:8000/page-a/,因此当我单击“后退”按钮时,onpopstate永远不会触发。只是个'/',花了我大约两天时间。

0 个答案:

没有答案