猿问

有什么方法可以删除 Quill 中的特定格式吗?

给定Quill 1.3.6其中的自定义格式化程序,是否有任何方法可以以编程方式从整个编辑器中删除所有自定义格式?换句话说,是否有任何方法可以删除bold文档中出现的每个位置的格式?

quill.removeFormat()似乎不是这个选项,因为它没有为您提供按格式过滤器。

任何想法?


HUX布斯
浏览 175回答 3
3回答

郎朗坤

如果将false值参数传递给format函数,则可以删除特定类型的格式。例如,format('bold', false)从当前选定的文本中删除粗体(但没有其他格式)。或者formatText(0, 100, 'bold', false)删除前 100 个字符的粗体格式。

德玛西亚99

我正在使用 npm 包 sanitize-html 做类似的事情。您的用例的示例:import sanitizeHtml from 'sanitize-html';const dirtyText = '<p>My <strong>dirty</strong> text</p>';const cleanText = sanitizeHtml(dirtyText, {&nbsp; exclusiveFilter: (frame) => frame.tag !== 'strong'});否则,您可以(我认为更好)列出您允许使用“allowedTags”属性的标签:import sanitizeHtml from 'sanitize-html';const dirtyText = '<p>My <strong>dirty</strong> text</p>';const cleanText = sanitizeHtml(dirtyText, {&nbsp; allowedTags: ['span', 'p', 'h2', 'a', 'u', 'em', 's']});

泛舟湖上清波郎朗

我能够想出这样的解决方案(这似乎没有很好的性能,但做了我需要的事情)。const deltas = quill.getContents().map(delta => {&nbsp; &nbsp; const attributes = delta.attributes;&nbsp; &nbsp; if (attributes) {&nbsp; &nbsp; &nbsp; &nbsp; delete attributes['<YOUR ATTRIBUTE TO DELETE>'];&nbsp; &nbsp; }&nbsp; &nbsp; return delta;});quill.setContents(deltas);
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答