How to wait until an element exists?

后端 未结 19 2237
广开言路
广开言路 2020-11-22 09:14

I\'m working on an Extension in Chrome, and I\'m wondering: what\'s the best way to find out when an element comes into existence? Using plain javascript, with an interval t

19条回答
  •  青春惊慌失措
    2020-11-22 09:42

    Here's a Promise-returning solution in vanilla Javascript (no messy callbacks). By default it checks every 200ms.

    function waitFor(selector) {
        return new Promise(function (res, rej) {
            waitForElementToDisplay(selector, 200);
            function waitForElementToDisplay(selector, time) {
                if (document.querySelector(selector) != null) {
                    res(document.querySelector(selector));
                }
                else {
                    setTimeout(function () {
                        waitForElementToDisplay(selector, time);
                    }, time);
                }
            }
        });
    }
    

提交回复
热议问题