Wait For Elements

given a selector waits for elements to be inserted into the DOM and executes a callback for each match

2014-10-13 기준 버전입니다. 최신 버전을 확인하세요.

이 스크립트는 직접 설치하는 용도가 아닙니다. 다른 스크립트에서 메타 지시문 // @require https://update.greatest.deepsurf.us/scripts/5679/21043/Wait%20For%20Elements.js을(를) 사용하여 포함하는 라이브러리입니다.

/**
* @param sel - the selector you want to wait for
* @param action - the callback that will be executed when element/s matching the given selector are found, it is passed the array of found elements
* @param stopLooking - if true the function will stop looking for more elements after the first match
*/
function waitForElems(sel, action, stopLooking) {
  var id = 'fke' + Math.floor(Math.random() * 12345);
  function findElem(sel) {
    var found = [].filter.call(document.querySelectorAll(sel), function(elem) {
      return elem.dataset[id] !== 'y';
    });
    if(found.length > 0) {
      found.forEach(function(elem) {
        elem.dataset[id] = 'y';
        action(elem);
      });
      if(stopLooking) {
        clearInterval(tick);
      }
    }
  }
  var tick = setInterval(findElem.bind(null, sel), 300);
  findElem(sel);
}