最近在老项目重构时,遇到一个Vue混用的问题,场景是这样的,原先的一个地址组件用的是jQuery 写的,最后地址的赋值也是获取DOM,但页面新写的用Vue,然后我想监听被赋值DOM的Vue值。尝试过使用Vue监听$refs,但监听不到改变。
还尝试用过addlister 也是Fail,于是请求大佬,找了一个监听DOM树对象的函数- MutationObserver,此函数了得,下面附上代码
function initIframeChange(elemIfram) {
if (window.MutationObserver || window.webkitMutationObserver) {
// chrome
var callback = function(mutations) {
mutations.forEach(function(mutation) {
if(mutation.attributeName === 'src'){
iframeSrcChanged(mutation.oldValue,mutation.target.src,mutation.target);
}
});
};
if (window.MutationObserver) {
var observer = new MutationObserver(callback);
} else {
var observer = new webkitMutationObserver(callback);
}
observer.observe(elemIfram, {
attributes: true, //监听属性值
attributeOldValue: true //是否监听老数据值
});
}
}
第一次写笔记,不太熟练,希望多多体谅,后续附上该对象的API。