asp.net - HtmlEncode ckeditor 默认文本
问题描述
我正在使用 CKEditor 4 处理旧的 ASP.NET WebForms 项目。出于安全原因,我将 CKEditor 设置为 Html 编码所有输出。但是,我注意到如果 textarea 具有应用程序提供的默认文本,除非我进入 textarea 并更改某些内容,否则 CKEditor 似乎不会对值进行编码。因此,如果我做了一些导致回发的事情,比如尝试在页面加载后保存记录,我会从 .NET 收到讨厌的页面验证错误。
有没有办法让 ckeditor 认为编辑器已被修改以便对 HTML 进行编码?还是更好的解决方案?
谢谢
解决方案
我通过检测 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();
});
推荐阅读
- java - 解析后某些 unicode 字符作为其 HTML 代码返回
- php - 从 PHP 表单向 Web 服务 Rest 发送数据,并将其保存在 MySQL 数据库中
- java - 如何在 @Controller @RequestMapping 生效之前检索 URL?
- xcode - 如何在生成核心数据子类后修复 Xcode 10 错误“多个命令产生..”
- python - 如何在 PyCharm 中将所有单引号字符串转换为双引号字符串?
- react-native - 使用 Bodymovin 导出无法按预期工作
- vim - Vim 8 包干扰缩进?
- java - Spring OAuth2 安全 - 客户端凭据 - 自定义 AuthenticationProvider
- javascript - 如何知道是否按下了后退/前进而不是 vue/vue-router 中的手动路由器推送?
- html - 从 HtmlService 输入修改现有日历事件