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

如何将textarea中的HTML代码传入CKEDITOR的setData并正常渲染?

解决CKEditor setData仅显示HTML代码而非渲染效果的问题

我看了你的代码,问题出在获取textarea内容的方式上!你现在用$('textarea[name="venue_description"]').text()拿到的是转义后的HTML字符串(比如<p>会变成&lt;p&gt;),CKEditor收到这种转义后的内容,只会把它当成纯文本显示,不会去渲染成富文本。

直接修复方案

把获取内容的方法从.text()改成.val()就行——textarea的实际内容存在它的value属性里,.val()能正确拿到原始的HTML代码,不会转义实体。修改后的代码如下:

CKEDITOR.replace('editor', { height: 200 }); 
window.onload = function() { 
    var html = $('textarea[name="venue_description"]').val(); 
    CKEDITOR.instances.editor.setData(html); 
}

额外情况处理

如果你的textarea里存的本身就是已经转义过的HTML(比如数据库里存的是&lt;p&gt;这是内容&lt;/p&gt;),那你还需要先把这些HTML实体解码成真实的标签,再传给setData。可以用这个小工具函数:

function decodeHtml(html) {
    const txt = document.createElement("textarea");
    txt.innerHTML = html;
    return txt.value;
}

// 调用示例
window.onload = function() { 
    const escapedHtml = $('textarea[name="venue_description"]').val();
    const realHtml = decodeHtml(escapedHtml);
    CKEDITOR.instances.editor.setData(realHtml); 
}

内容的提问来源于stack exchange,提问作者Umair Shah

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:45:06