You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Quill编辑器外部将文本格式化为HTML?

在Quill编辑器外部将文本格式化为HTML的方法

嘿,刚好碰到过类似的需求,Quill本身就自带了处理这个的能力,不用绕弯路~结合你现有的代码场景,分两种情况给你讲:

1. 从当前Quill编辑器实时获取HTML内容

如果你是想把编辑器里正在编辑的内容,直接转成HTML显示在页面其他地方(比如预览区),或者提交时同时获取HTML格式,直接用Quill实例的root.innerHTML属性就行,这是最直接的方式:

// 假设你已经初始化了Quill实例:var quill = new Quill('#editor-container', {...});

// 获取编辑器内容对应的HTML
const editorHtml = quill.root.innerHTML;

// 示例1:把HTML插入到页面的预览区域
document.getElementById('preview-div').innerHTML = editorHtml;

// 示例2:如果需要提交到PHP,可以把HTML存到另一个隐藏输入框
document.getElementById('editor-html').value = editorHtml;

对应的HTML可以加个额外的隐藏输入框:

<input name="editor1" type="hidden">
<input name="editor-html" id="editor-html" type="hidden">
<div id="editor-container"></div>

2. 从数据库取出Delta内容,在外部转成HTML

如果你已经把Quill的Delta格式内容存在了数据库,现在想在没有编辑器的页面(或者编辑器外部)把Delta转成HTML,可以创建一个隐藏的临时Quill实例来处理转换,不需要把它渲染到页面上:

// 假设从数据库取出的Delta数据是savedDelta(就是你之前存在数据库里的内容)
const savedDelta = {"ops":[{"insert":"测试文本"},{"attributes":{"italic":true},"insert":"(斜体)"},{"insert":"\n"}]};

// 创建一个临时的Quill实例,不需要挂载到页面DOM
const tempQuill = new Quill(document.createElement('div'), {
  theme: 'snow' // 和你原来的编辑器主题保持一致,确保格式匹配
});

// 加载Delta内容到临时实例
tempQuill.setContents(savedDelta);

// 获取转换后的HTML
const htmlContent = tempQuill.root.innerHTML;

// 把HTML放到你需要显示的地方
document.getElementById('external-content').innerHTML = htmlContent;

注意事项

  • 确保临时Quill实例的版本和你正在使用的一致(你用的是1.3.6,上面的代码完全兼容这个版本)
  • 临时实例不需要添加到页面DOM中,Quill依然能正常处理内容转换
  • 如果只是需要在提交时获取HTML,也可以在表单提交事件里直接把quill.root.innerHTML赋值给隐藏输入框,和Delta内容一起提交到PHP脚本

内容的提问来源于stack exchange,提问作者Stiofán

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 07:51:16