我之前使用过 https://github.com/quilljs/quill/issues/1184#issuecomment-403657128 来确保没有人可以在 QuillJS 编辑器中粘贴格式化文本,因为我希望人们只使用少数几个编辑我从 QuillJs 启用的按钮。从那时起,它就不再对我有用了。我的问题是:
关于 https://github.com/quilljs/quill/issues/1184#issuecomment-403657128 的一件事可能与您的预期不同,可能是
'silent'
。
“导致文本更改的 API 也可以使用“静默”源调用,在这种情况下,不会发出文本更改。不建议这样做,因为它可能会破坏撤消堆栈和其他依赖于完整记录的函数文本更改。” [ https://quilljs.com/docs/api/#events ]
因此,如果您希望发出
text-change
事件但没有得到它,请更改这两行
this.quill.updateContents(delta, 'silent')
this.quill.setSelection(index, length, 'silent')
像这样:
this.quill.updateContents(delta, 'user')
this.quill.setSelection(index, length, 'user')
然后
text-change
事件将被触发。
Pelo js conseguir da seguinte maneira Adicionei um evento pra capture e depois uso o Delta Pra Removal and formatação
<script>
const quill = new Quill('#editor', {
theme: 'snow'
});
const Delta = Quill.import('delta');
// Remover formatação quando um texto e colado no editor
quill.clipboard.addMatcher(Node.ELEMENT_NODE, function(node, delta) {
if (node.children.length > 0) { //opcional
node.textContent += '\n'
}
return new Delta().insert(node.textContent);
});
quill.on('text-change', function(delta, oldDelta, source) {
let content = quill.root.innerHTML.replace(/ /g, ' ');
content = content.replace(/&[^;]+;/g, '');
console.log(content);
});
</script>