html - TinyMCE
问题描述
我在带有 TinyMCE 的 ASP.net VB 中有一个 MultiLine TextField。我们网站的用户在他的计算机上有一个插件,可以将不需要的 HTML 代码插入到 TinyMCE 文本字段中。
<p> </p><div id="ConnectiveDocSignExtentionInstalled" data-extension-version="1.0.4"></div>
在将完整的文本字段内容保存到我的 SQL 数据库之前,有没有办法过滤并删除它?
解决方案
一种选择是使用 TinyMCE 节点过滤器在对编辑器内的内容进行序列化时移除元素。这是一个例子:
setup: (editor) => {
editor.on('PreInit',() => {
// Create a custom node filter to remove unwanted content when getting content from the editor
editor.serializer.addNodeFilter('div', (nodes) => {
nodes.forEach((node) => {
const id = node.attr('id');
if (id === 'ConnectiveDocSignExtentionInstalled') {
node.remove();
}
});
});
});
}
及其工作版本:https ://fiddle.tiny.cloud/RAhaab/1
这通过在初始化序列期间注册一个过滤器来删除当 TinyMCE 从编辑器获取内容时用户扩展添加的违规 div。可以在此处找到有关过滤器使用的节点 API 的更多信息:https ://www.tiny.cloud/docs/api/tinymce.html/tinymce.html.node/
取决于您的集成的另一种选择是对发送的内容使用服务器端过滤。你如何做到这一点会根据所使用的框架等而有所不同。
推荐阅读
- c# - IdentityServer 4 和已经使用 ASP.Net Identity Framework 的 MVC 5 .Net Framework 客户端
- android - 是否可以使用 XML 布局中的数据绑定访问为 TextView 编写的扩展函数?
- c# - 使用 C# 验证 SSL 证书
- ruby-on-rails - 在我的控制器中创建一个引发加载错误的动态下拉菜单
- java - 如何将 Ignite 配置为集群 Tomcat 应用程序的缓存
- javascript - 如何使用nodejs全屏启动chrome
- flutter - 文本字段使用多行keyboardType限制行数
- node.js - Node.js Mongo 未处理错误 EADDRINUSE :::5000
- java - Java 不会在 mac OS(Mojave) 上卸载
- vue.js - 未触发 vue 组件中的 @click