MutationObserver wrapper to wait for the specified CSS selector
이 스크립트는 직접 설치하는 용도가 아닙니다. 다른 스크립트에서 메타 지시문 // @require https://update.greatest.deepsurf.us/scripts/12228/72413/setMutationHandler.js을(를) 사용하여 포함하는 라이브러리입니다.
/* EXAMPLE:
setMutationHandler(document, '.container p.some-child', function(observer, nodes) {
// single node:
nodes[0].remove();
// or multiple nodes:
[].forEach.call(nodes, function(node) {
node.style.display = 'none';
});
//observer.disconnect(); // disconnect the observer, this is useful for one-time jobs
return true; // continue enumerating current batch of mutations
});
*/
// ==UserScript==
// @name setMutationHandler
// @description MutationObserver wrapper to wait for the specified CSS selector
// @namespace wOxxOm.scripts
// @author wOxxOm
// @grant none
// @version 1
// ==/UserScript==
function setMutationHandler(baseNode, selector, cb) {
var ob = new MutationObserver(function(mutations) {
for (var i=0, ml=mutations.length, m; (i<ml) && (m=mutations[i]); i++)
for (var j=0, nodes=m.addedNodes, nl=nodes.length, n; (j<nl) && (n=nodes[j]); j++)
if (n.nodeType == 1)
if ((n = n.matches(selector) ? [n] : n.querySelectorAll(selector)) && n.length)
if (!cb(ob, n))
return;
});
ob.observe(baseNode, {subtree:true, childList:true});
}