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