Fix crashes on *-once elements when called at bad timings

This commit is contained in:
2026-05-06 23:19:35 +02:00
parent 38f2b6aa7b
commit 0405ef424d
2 changed files with 8 additions and 4 deletions
@@ -84,7 +84,11 @@ const refreshElement = <
return;
}
element.refresh();
// This might be called at some bad timing
// This prevents crashes of the observer
if (element.refresh) {
element.refresh();
}
}
};
@@ -130,7 +134,7 @@ startObserver(observer);
export class LinkOnce extends elementOnce("link") {
getElementQuerySelector(): string {
// We get href from node.attributes instead of node.href to avoid getting the domain part
return `link[href='${this.node.attributes.getNamedItem("href").nodeValue}']`;
return `link[href='${this.node.attributes.getNamedItem("href")?.nodeValue}']`;
}
}
@@ -142,6 +146,6 @@ export class LinkOnce extends elementOnce("link") {
export class ScriptOnce extends inheritHtmlElement("script") {
getElementQuerySelector(): string {
// We get href from node.attributes instead of node.src to avoid getting the domain part
return `script[src='${this.node.attributes.getNamedItem("src").nodeValue}']`;
return `script[src='${this.node.attributes.getNamedItem("src")?.nodeValue}']`;
}
}