有没有一种方法,可以强制突变观察器忽略回调函数引起的DOM更改?
目前我有:
var config = { attributes: true, childList: true, characterData: true };
var target = document.body;
var timer;
// create an observer instance
var observer = new MutationObserver(function(mutations) {
// fired when a mutation occurs
timer = setTimeout(function () {
_3rd_party_callback();
}, 500);
});
observer.observe(target, config);
问题在于
_3rd_party_callback
回调会引起DOM更改,因此它永远不会停止。正如其名称所示,它是第三方函数,我无法更改(实际上,其DOM操作是其目的)。因此,我要在回调之前和之后分别断开连接并启动观察器。 observer.disconnect()
_3rd_party_callback();
observer.observe(target, config);
看起来它可以工作,但是由于事件的异步处理,我担心可能会禁用观察者,从而错过其他更改。
很不可能有一种方法将页面本身的更改与回调分开,但我会尝试一下。