2010-01-15 35 views

回答

24

可以使用beforeunload事件来触发你的代码运行导航之前...如果你需要更具体的(例如,仅在启动代码导航),在东西n我建议您将代码更改为window.location作为单独的函数,并为您的自定义逻辑添加一个钩子。

+0

这是否适用于单页面应用程序?在Angular和其他SPA框架中,URL更改但页面不卸载/重新加载,因此我不知道此事件是否触发。 – 2015-08-07 15:25:54

+0

通常框架提供自定义事件以获取位置更改 – Nobita 2016-03-10 14:08:56

+1

@CarlG,在单页面应用程序中,如果URL散列已更改,则可以使用'onhashchange'来注册处理程序。 – shuangwhywhy 2016-09-08 08:07:04

14

你可能想看看本纳德尔的帖子关于这样做,可能你在后谈判寻找什么

Binding Events to non DOM objects with jQuery

他的榜样关于创建一个事件处理程序触发更改事件时window.location改变

+7

实际上,解决方案似乎是'setInterval'并定期检查。 – 2016-05-12 15:45:54