const SVG_STRING = ` ` function replaceTokenWithSVG(token = "{mapa}", svgString = SVG_STRING, root = document.body) { const walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT); let node; while ((node = walker.nextNode())) { const i = node.nodeValue.indexOf(token); if (i !== -1) { const before = node.nodeValue.slice(0, i); const after = node.nodeValue.slice(i + token.length); const frag = document.createDocumentFragment(); if (before) frag.appendChild(document.createTextNode(before)); const tpl = document.createElement("template"); tpl.innerHTML = svgString.trim(); frag.appendChild(tpl.content); if (after) frag.appendChild(document.createTextNode(after)); node.parentNode.replaceChild(frag, node); return true; // zakończ po pierwszej podmianie } } return false; } document.addEventListener("DOMContentLoaded", () => { replaceTokenWithSVG("{mapa}", SVG_STRING); });