From 9be5eee08ae9b05a1c4db7e6cffcffcd0531ab25 Mon Sep 17 00:00:00 2001 From: morbidick Date: Thu, 22 Sep 2022 16:33:58 +0200 Subject: [PATCH] Fix mutation strategy when loaded async (#30) Co-authored-by: Lukas Mohrbacher --- src/strategies/mutation_observer.js | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/strategies/mutation_observer.js b/src/strategies/mutation_observer.js index 9dd0963..4552b34 100644 --- a/src/strategies/mutation_observer.js +++ b/src/strategies/mutation_observer.js @@ -78,14 +78,23 @@ export function defineElement(elSpec, elName, events) { subtree: true }) - observers[name] = /* true */ observer + observers[elName] = /* true */ observer - window.addEventListener('DOMContentLoaded', () => { - const nodes = document.getElementsByTagName(name) + function mountElementsInDOM() { + const nodes = document.getElementsByTagName(elName) each(nodes, (/** @type HTMLElement */ node) => - checkForMount(node, name, events) + checkForMount(node, elName, events) ) - }) + } + + if ( + document.readyState === 'complete' || + document.readyState === 'interactive' + ) { + mountElementsInDOM() + } else { + window.addEventListener('DOMContentLoaded', mountElementsInDOM) + } } /**