aboutsummaryrefslogtreecommitdiff
path: root/html/DOM_helpers.js
diff options
context:
space:
mode:
authorWojtek Kosior <koszko@koszko.org>2021-08-27 18:01:34 +0200
committerWojtek Kosior <koszko@koszko.org>2021-08-27 18:01:34 +0200
commit826b4fd80a288f13841b6f6d56cc38e2f43bbc03 (patch)
tree1b28d79d88817b19ca4cf6a229cfee9143531dc3 /html/DOM_helpers.js
parent53891495d6f6b901da3058b1227d326313d922e9 (diff)
downloadbrowser-extension-826b4fd80a288f13841b6f6d56cc38e2f43bbc03.tar.gz
browser-extension-826b4fd80a288f13841b6f6d56cc38e2f43bbc03.zip
start using `<template>' tag
Diffstat (limited to 'html/DOM_helpers.js')
-rw-r--r--html/DOM_helpers.js21
1 files changed, 20 insertions, 1 deletions
diff --git a/html/DOM_helpers.js b/html/DOM_helpers.js
index 2bff966..392299f 100644
--- a/html/DOM_helpers.js
+++ b/html/DOM_helpers.js
@@ -10,9 +10,27 @@ function by_id(id)
return document.getElementById(id);
}
+const known_templates = new Map();
+
+function get_template(template_id)
+{
+ let template = known_templates.get(template_id) || null;
+ if (template)
+ return template;
+
+ for (const template_node of document.getElementsByTagName("TEMPLATE")) {
+ template = template_node.content.getElementById(template_id);
+ if (template)
+ break;
+ }
+
+ known_templates.set(template_id, template);
+ return template;
+}
+
function clone_template(template_id)
{
- const clone = document.getElementById(template_id).cloneNode(true);
+ const clone = get_template(template_id).cloneNode(true);
const result_object = {};
const to_process = [clone];
@@ -36,6 +54,7 @@ function clone_template(template_id)
/*
* EXPORTS_START
* EXPORT by_id
+ * EXPORT get_template
* EXPORT clone_template
* EXPORTS_END
*/