html - 如何在 svelte 中渲染 html
问题描述
我尝试通过将 html 存储在变量中来呈现 html,但它不起作用,我还尝试了三重花括号
<script>
let name = 'world';
let val = ""
let ans2 = ""
let ans3;
import showdown from 'showdown';
import validity from 'validity-checker';
function dataSubmit(e){
e.preventDefault();
//ans = validity.isEmoji("ggg");
ans2 = new showdown.Converter();
ans3 = ans2.makeHtml(val)
}
</script>
<div>
<textarea bind:value={val} on:change={dataSubmit}></textarea>
<div>
{{{ans3}}}
</div>
</div>
ans3 变量的返回类型类似于“<h1>Hello</h1>”
解决方案
您可以使用{@html expression}
Svelte 在注入 HTML 之前不会清理表达式。如果数据来自不受信任的来源,您必须对其进行清理,否则您会将用户暴露在 XSS 漏洞中。
推荐阅读
- python - NameError: name 'webdriver' is not defined 错误使用 Selenium 和 Python
- usb - 未检测到打印机但存在于 cups 服务器上
- python - 如何删除 geopandas 图例的边框和调整标签标题的大小
- php - 通过 WooCommerce 产品设置中的自定义复选框禁用添加到购物车按钮
- php - 播放音频文件时 Apache 2.4 崩溃
- android - 在 DownloadManager 上下载并将文件保存在 setDestinationInExternalFilesDir() 中不适用于 Android 10
- azure-devops - 无法在 Azure DevOps 中安排部署
- html - 屏幕尺寸缩小时图像未垂直居中
- php - 如何在 Woocommerce 商店产品/存档页面上设置属性值的样式
- resize - SWT 为什么在我在父级中创建新的 Composite 后调整父级 Composite 的大小?