本机javascript检测所有类型的页面更改

本机javascript检测所有类型的页面更改,javascript,hashchange,Javascript,Hashchange,我编写了一段代码,跟踪页面上的html属性以进行一些操作 这是我第一次工作,因为我把函数插入了 document.addEventListener('DOMContentLoaded', function() { console.log(document.querySelectorAll('*[myid]')[0]); }); 但是该函数必须在每种类型的站点中工作,当我在一个角度站点上测试时,位置散列会发生变化,而不会在此事件中重新加载 所以我尝试创建一个hashchange事件(),

我编写了一段代码,跟踪页面上的html属性以进行一些操作

这是我第一次工作,因为我把函数插入了

document.addEventListener('DOMContentLoaded', function() {
    console.log(document.querySelectorAll('*[myid]')[0]);
});
但是该函数必须在每种类型的站点中工作,当我在一个角度站点上测试时,位置散列会发生变化,而不会在此事件中重新加载

所以我尝试创建一个hashchange事件(),但效果不是很好

我没有找到一个很好的方法来做到这一点,无论客户端使用什么样的框架,如何在每次哈希更改时启动一个事件

祝你度过愉快的一天,谢谢你的时间/帮助

附言: 我用这个:

var location = window.location,
    oldURL   = location.href,
    oldHash  = location.hash;
setInterval(function() {
    var newURL  = location.href,
        newHash = location.hash;
    if (newHash != oldHash && typeof window.onhashchange === "function") {
        window.onhashchange({
            type: "hashchange",
            oldURL: oldURL,
            newURL: newURL
        });

        oldURL = newURL;
        oldHash = newHash;
    }
}, 100);
这里的条件是:

if ( "onhashchange" in window.document.body )
返回true,但当我这样做时:

window.onhashchange = function() { console.log('hash change'); };

如果我不使用setInterval,它将不起作用…

当参数更改时,您可以调用它。我不确定,因为我是个新手。在所有控制器中调用的init函数,当参数更改时调用。我不使用angular,我使用本机javascript,但我的本机javascript必须与使用angular开发的站点一起使用。(对不起,如果我没有理解你的信息)