具有类似onhashchange的相同功能的JavaScript onopstate替代方案
JavaScript onpopstate alternative with same functional like onhashchange
我在谷歌上搜索过,在这个论坛上也有其他一些问题,但它似乎没有回答我的问题。
基于MDNhttps://developer.mozilla.org/en-US/docs/Web/API/window.onpopstate:
请注意,仅调用
history.pushState()
或history.replaceState()
不会触发popstate
事件。popstate
事件仅通过执行浏览器操作触发,例如单击后退按钮(或在JavaScript中调用history.back()
)。只有当用户在同一文档的两个历史记录条目之间导航时,才会触发该事件。
我正在寻找与window.onhashchange
功能相同的onpopstate
替代品(https://developer.mozilla.org/en-US/docs/Web/API/Window.onhashchange)当URL更改时将触发事件。
你想分享你的解决方案吗?
我认为您可能可以使用"History.js"工具,它提供了一个您可以监听的"statechange"事件。当按下向前/向后按钮或使用pushState/replaceState时,工具会触发该事件。
https://github.com/browserstate/history.js/
当然,现在你已经换了一个不同的问题,那就是你有两种类型的动作都被触发的事件,你经常想区分它们,这就更难了。所以你必须破解自己的解决方案来区分它们。大多数人似乎在准备调用pushState/replaceState时设置了一些全局标志,然后在事件处理程序中检查该标志。如果设置了标志,则事件来自您自己的代码,如果没有,则来自浏览器按钮。
- 为什么不't Javascript对我的输入值进行了一些重新检查
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 将函数的上下文应用于javascript变量
- 使用php或javascript从facebook相册URL中删除多余的部分
- 正在添加'X'按钮,在文本字段旁边使用javascript
- 如何在JavaScript中将字符串转换为函数引用
- 模糊事件的Javascript测试
- Javascript更改图标
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 如何使用WCF服务和javascript表单post上传.doc文件
- javascript结合了数组和字典
- 这是什么 ==- javascript 运算符
- 从javascript创建一个列表
- 无法在通过jQuery的ajax加载的页面中执行javascript
- Javascript:selenium Web驱动程序isDisplayed()不工作
- 如何通过ajax刷新JSF填充的javascript变量
- 如何在Javascript中将JSon对象转换为数组
- 如何使用onopstate,使用纯JavaScript
- 具有类似onhashchange的相同功能的JavaScript onopstate替代方案
- Javascript历史可以't检索onopstate中的值