JSFiddle - React, Tailwind, and code Playground
HTML
<script src="https://unpkg.com/vue@2.5.8/dist/vue.js"></script>
<div id="app">
</div>
JavaScript
var string = `<script>var sound = new Howl({
src: ['sound.mp3']
});
sound.play()<\/script>;`
new Vue({
el: '#app',
created() {
this.loadScripts().then(() => {
this.executeScript();
});
},
methods: {
loadScripts() {
return new Promise(resolve => {
let scriptEl = document.createElement("script");
scriptEl.src = "https://cdnjs.cloudflare.com/ajax/libs/howler/2.0.5/howler.js";
scriptEl.type = "text/javascript";
// Attach script to head
document.getElementsByTagName("head")[0].appendChild(scriptEl);
// Wait for tag to load before promise is resolved
scriptEl.addEventListener('load',() => {
resolve();
});
});
},
executeScript() {
// remove script tags
let script = string.replace(/<\/?script>/g, "")
eval(script)
}
}
});