首页 > 解决方案 > HtmlEncode ckeditor 默认文本

问题描述

我正在使用 CKEditor 4 处理旧的 ASP.NET WebForms 项目。出于安全原因,我将 CKEditor 设置为 Html 编码所有输出。但是,我注意到如果 textarea 具有应用程序提供的默认文本,除非我进入 textarea 并更改某些内容,否则 CKEditor 似乎不会对值进行编码。因此,如果我做了一些导致回发的事情,比如尝试在页面加载后保存记录,我会从 .NET 收到讨厌的页面验证错误。

有没有办法让 ckeditor 认为编辑器已被修改以便对 HTML 进行编码?还是更好的解决方案?

谢谢

标签: asp.netwebformsckeditor

解决方案


我通过检测 ASP.NET 回发并使用 setData 强制更新编辑器值解决了我的问题

$('input[type="submit"], button[type="submit"], a[href*="__doPostBack"]').on('click', function () {
    $instance.setData($editor.html());
});

似乎不是最好的方法,但它确实有效。

更正,这似乎有效,但仅限于初始负载。这似乎有效:

$instance.on('instanceReady', function () {
    $instance.updateElement();
});

推荐阅读