Javascript 从 DOMNodeInserted 到 MutationObserver
这段代码是在 Tamper Monkey 的 content.js 中发现的。被浏览器警告应该替换掉这种写法。
bn.addEventListener("DOMNodeInserted", o, s)
替换成
var [adder, remover] = ((bn, o, s) => {
var helper = { remove : () => {}, add : () => {} }
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
var nodes = Array.prototype.slice.call(mutation.addedNodes);
nodes.forEach((node_) => { o(); helper.remove() });
});
});
helper.remove = () => observer.disconnect();
helper.add = () => observer.observe(bn, { childList: true, subtree: true, };
return [helper.add, helper.remove];
})(bn, o, s);
adder()
bn.removeEventListener("DOMNodeInserted", o, s)
替换成
remover()