标签-6ren"> 标签-我正在尝试创建一个需要支持系统旧模块的 Vue SPA 应用程序。 我想创建向后兼容的组件,它将通过 ajax 请求获取完整的 HTML 模块并将其插入到组件中。 问题是异常(exception)的 -6ren">
gpt4 book ai didi

html - Vue v-html 指令不运行 <script src =".."> 标签

转载 作者:行者123 更新时间:2023-12-03 20:43:02 30 4
gpt4 key购买 nike

我正在尝试创建一个需要支持系统旧模块的 Vue SPA 应用程序。
我想创建向后兼容的组件,它将通过 ajax 请求获取完整的 HTML 模块并将其插入到组件中。
问题是异常(exception)的 HTML 包含应该包含的相关脚本。
是否有任何选项可以通过 HTML 代码从服务器注入(inject) js 文件

<template>
<div class="container" v-html="html"></div>
</template>

<script>
import { mapState } from "vuex";

export default {
name: "comp",
data() {
return {
html: null
};
},
mounted() {
fetch('http://localhost:8090/api/html/response')
.then(response => {
return response.text();
})
.then(data => {
this.html= data;
})
}
};

最佳答案

您将无法使用 v-html因为该指令只是设置元素的 innerHTML , 不执行 <script>标签。
AFAIK,唯一的其他选择是在文档中附加 <script>使用预期的源,所以也许您可以创建一个 API 来获取与标记分开的脚本,然后将它们注入(inject)到 document :

export default {
mounted() {
fetch('http://localhost:8090/api/js/response')
.then(response => {
return response.json();
})
.then(scriptUrls => {
for (const url of scriptUrls) {
const scriptEl = document.createElement('script');
scriptEl.src = url;
document.body.appendChild(scriptEl);
}
})
}

关于html - Vue v-html 指令不运行 &lt;script src =".."> 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66520329/

30 4 0