,html,asp.net,vb.net,tinymce"/>

首页 > 解决方案 > TinyMCE

 

问题描述

我在带有 TinyMCE 的 ASP.net VB 中有一个 MultiLine TextField。我们网站的用户在他的计算机上有一个插件,可以将不需要的 HTML 代码插入到 TinyMCE 文本字段中。

<p>&nbsp;</p><div id="ConnectiveDocSignExtentionInstalled" data-extension-version="1.0.4"></div>

在将完整的文本字段内容保存到我的 SQL 数据库之前,有没有办法过滤并删除它?

标签: htmlasp.netvb.nettinymce

解决方案


一种选择是使用 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/

取决于您的集成的另一种选择是对发送的内容使用服务器端过滤。你如何做到这一点会根据所使用的框架等而有所不同。


推荐阅读