Here is my initial unuseful code.
<!DOCTYPE html>
<html>
<head>
<script>
function main() {
for (let i = 0; i < document.body.childNodes.length; i++) {
alert( document.body.childNodes[i].string ); // Text, DIV, Text, UL, ..., SCRIPT
}
}
</script>
</head>
<body onload="main()">
<p class='[[param-tmpl-1]]'>
Some text {{var-templ-2}}.
</p>
</body>
</html>
I would like that the browser works with the following code for the body where [[ ... ]] has been cut, and {{ SOMETHING }} is become <span style = "color: red;; font-weight: bold;">SOMETHING</span>.
<body>
<p class=''>
Some text <span style = "color: red;; font-weight: bold;">var-templ-2</span>.
</p>
</body>
I have no control on the DOM structure, and the places where [[ ... ]] and {{ ... }} are used.
Advertisement
Answer
You can also do it by modifying document.body.outerHTML directly:
window.onload=_=>
document.body.outerHTML=document.body.outerHTML
.replace(/[[.*?]]/g, "")
.replace(/{{(.*?)}}/g, `<span style="color: red; font-weight: bold;">$1</span>`);<body>
<p class='[[param-tmpl-1]]'>
Some text {{var-templ-2}}.
</p>
<p class='[[ ... ]]'>
Some other and {{more}} text of {{ SOMETHING }}.
</p>
</body>