使用 v-html 渲染 HTML 之后,不会执行 script 标签内的代码。
原因
v-html 只是设置一个元素的 innerHTML。
解决办法
可以自定义一个标识(可以绑定一个:ID),在 $nextTick 函数中获取到 script 标签中的代码,再去执行。
------ - -
- ------------------- - -------
-----------------------
- ------ - -------
-------- - --
-------- - -
-------- - ----------------------
--------------------
-
--
因为是动态脚本,所以在使用完或者页面、组件销毁的时候,需要将它删除,防止污染全局。
beforeUnmount() {
let ------------------- = --------.getElementById("custom-dynamic-scripting");
if(-------------------){
--------.getElementsByTagName('body')[0].removeChild(-------------------);
}
}