document.body.innerHTML = document.body.innerHTML.replace(/{DATETIME}/g, '03 мая 15:00');
function replaceText(text, textToReplace) {
function replace(nodes) {
nodes.forEach(node => {
if (node instanceof HTMLScriptElement) {
return;
}
if (node instanceof HTMLStyleElement) {
return;
}
if (node instanceof Text) {
if (node.nodeValue.match(text)) {
node.nodeValue = node.nodeValue.replace(text, textToReplace)
}
}
else {
replace(Array.from(node.childNodes));
}
});
}
replace(Array.from(document.body.childNodes));
}
replaceText("{DATETIME}", "___WwW___");
function replaceBreadCrumbs(label, text) {
// функция работает до тех пор пока в тексте есть метка {DATETIME}
if(!document.body.innerText.includes(label)) return false;
var elements = document.querySelectorAll("*");
var elementWithLabel;
for(var i = 0; i < elements.length; i++) {
// Проверка срабатывает на многих элемента, в которых вложенность но останавливается на последнем
// <div><b>{DATETIME}</b></div> попадает под проверку
// <b>{DATETIME}</b> - попадает и будет последний в проверке.
if(elements[i].innerHTML.includes(label)) {
elementWithLabel = elements[i]
}
}
elementWithLabel.innerHTML = elementWithLabel.innerHTML.replace(label, text);
// Запускаем функцию заново и ищем метки
replaceBreadCrumbs.apply(null, arguments)
}
replaceBreadCrumbs("{DATETIME}", "03 мая 15:00");