From 1c81ab120d123f31aa8594187230c81549765ade Mon Sep 17 00:00:00 2001 From: ache Date: Mon, 23 Apr 2018 21:26:13 +0200 Subject: Can use script inside a md file --- public/js/script.js | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/public/js/script.js b/public/js/script.js index 1bcb250..e7c836e 100644 --- a/public/js/script.js +++ b/public/js/script.js @@ -2,6 +2,29 @@ /* global document XMLHttpRequest */ + +function nodeScriptReplace(node) { + if ( node.tagName === 'SCRIPT' ) { + node.parentNode.replaceChild( nodeScriptClone(node) , node ); + } + else if(node.children) { + for ( const child of node.children ) { + nodeScriptReplace( child ); + } + } + + return node; +} +function nodeScriptClone(node){ + const script = document.createElement("script"); + + script.text = node.innerHTML; + [ ...node.attributes].forEach( attr => { + script.setAttribute( attr.name, attr.value ); + }); + return script; +} + document.addEventListener('DOMContentLoaded', () => { const httpRequest = new XMLHttpRequest(); @@ -19,6 +42,7 @@ document.addEventListener('DOMContentLoaded', () => { setMd.onreadystatechange = () => { if (setMd.readyState === 4 && setMd.status === 200) { document.getElementById('md').innerHTML = setMd.responseText; + nodeScriptReplace(document.getElementById('md')); } }; setMd.open('GET', a.href); -- cgit v1.2.3