URL参数更改时的侦听器事件

用户名

我有一个带有分页和过滤器的单页面应用程序,需要检测当前URL何时发生更改。是否有一种简单的方法可将侦听器添加到当前URL并在其更改时触发某些内容?(也没有设置间隔!)

  1. 用户登陆www.foobar.com
  2. 用户做某事,URL更改为www.foobar.com?filter=hello
  3. 我的函数运行

我既尝试了onhashchange,也尝试了unbeforeunload,但都与此无关。

window.onbeforeunload = function(e) {
   alert ('url changed!');
};

window.onhashchange = function() { 
alert ('url changed!');  
}

有没有一种方法可以将侦听器添加到URL,并在URL发生任何更改时触发某些内容?(同样,单页应用程序,因此不刷新)

克鲁格乔

如果您不想使用setInterval,则可以覆盖该history.pushState事件:

(function(history){
    const pushState = history.pushState;
    history.pushState = function(state) {
        if (typeof history.onpushstate == "function") {
            history.onpushstate({state: state});
        }
        // Call your custom function here
        return pushState.apply(history, arguments);
    }
})(window.history);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章