diff options
author | ache <ache@ache.one> | 2018-04-23 21:26:13 +0200 |
---|---|---|
committer | ache <ache@ache.one> | 2018-04-23 21:26:13 +0200 |
commit | 1c81ab120d123f31aa8594187230c81549765ade (patch) | |
tree | af380cd23f7f971a9bac1ce27473bc79ebd80873 | |
parent | Ajout de remark-custom-blocks (diff) |
Can use script inside a md file
-rw-r--r-- | public/js/script.js | 24 |
1 files changed, 24 insertions, 0 deletions
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); |