[英]How to avoid v-html from changing content on website?
我正在vue
中构建代码编辑器。 我使用v-html
来渲染html、css和js。
这是一些代码:
<template>
<div class="grid">
<div id="html" class="grid-cell">
<textarea v-model="htmlCode" name="" id="" cols="30" rows="10"></textarea>
<div class="title">This is a cell</div>
</div>
<div id="css" class="grid-cell">
<textarea v-model="cssCode" name="" id="" cols="30" rows="10"></textarea>
<div class="title">This is a cell</div>
</div>
<div id="js" class="grid-cell">
<textarea v-model="jsCode" name="" id="" cols="30" rows="10"></textarea>
<div class="title">This is a cell</div>
</div>
<div id="preview" class="grid-cell">
<div
v-html="
htmlCode +
styleBegin +
cssCode +
stylEend +
scriptBegin +
jsCode +
scriptEnd
"
></div>
<div class="title">This is a cell</div>
</div>
</div>
</template>
<script>
export default {
name: "CodeEditor",
methods: {},
data() {
return {
htmlCode: "<h1>hi</h1>",
cssCode: "",
jsCode: "",
styleBegin: "<style>",
styleEnd: "</style>",
scriptBegin: "<script>",
scriptEnd: "</"+"script>"
};
},
computed: {},
};
</script>
我遇到的问题是,当用户在代码编辑器中输入内容时,它会影响网站本身(我的网站)
如果有人知道解决方案,我将不胜感激,谢谢!
您可以使用iframe
及其srcdoc
属性,如下所示:
<iframe :srcdoc="
htmlCode +
styleBegin +
cssCode +
stylEend +
scriptBegin +
jsCode +
scriptEnd"></iframe>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.