function sleep(time) { return new Promise((resolve) => setTimeout(resolve, time)); } async function getDom(sel) { for (let i = 0; i < 100; i++) { let dom = document.querySelector(sel); console.log(dom); if (dom) { return dom; } else { await sleep(100); } } } function addNewStyle(newStyle) { let styleElement = document.getElementById('styles_js'); if (!styleElement) { styleElement = document.createElement('style'); styleElement.type = 'text/css'; styleElement.id = 'styles_js'; document.getElementsByTagName('head')[0].appendChild(styleElement); } styleElement.appendChild(document.createTextNode(newStyle)); }