TinyMCE <p> </p><div id="ConnectiveDocSignExtentionInstalled" data-extension-version="1.0.4"></div>

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

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

<p>&nbsp;</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/

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