我在让removeFormat正常工作时遇到了一些麻烦。有趣的是,我还以为几天前我就能正常工作了;但现在我检查了一下,发现它不是正确的。无论所选内容位于何处,它都会删除块级格式。一个简单的例子,使用Quill Quickstart,只做了一些修改:
var editor = new Quill('#editor', {
modules: { toolbar: '#toolbar' },
theme: 'snow'
});
let Block = Quill.import('blots/block');
let Parchment = Quill.import('parchment');
class BlockquoteBlot extends Block { }
BlockquoteBlot.scope = Parchment.Scope.BLOCK;
BlockquoteBlot.blotName = 'blockquote';
BlockquoteBlot.tagName = 'blockquote';
Quill.register(BlockquoteBlot);
let quill = new Quill('#editor');
$('#italic-button').click(function() {
quill.format('italic', true);
});
$('#bold-button').click(function() {
quill.format('bold', true);
});
$('#blockquote-button').click(function() {
quill.format('blockquote', true);
});
$('.cust-clear').click(function(ev) {
var range = quill.getSelection();
quill.removeFormat(range.index, range.length);
});<link href="https://cdn.quilljs.com/1.0.3/quill.snow.css" rel="stylesheet"/>
<script src="https://cdn.quilljs.com/1.0.3/quill.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!-- Create the toolbar container -->
<div id="toolbar">
<button id="bold-button" class="ql-bold">Bold</button>
<button id="italic-button" class="ql-italic">Italic</button>
<button id="blockquote-button" class="ql-blockquote">Blockquote</button>
<button class="cust-clear" title="Clear Formatting">X</button>
</div>
<!-- Create the editor container -->
<div id="editor">
<p>Hello World!</p>
</div>
在本例中,如果我将粗体应用于"Hello“并使整行代码成为块引号,则所有内容看起来都应该是这样的。如果我选择"Hello“并单击我的X按钮删除格式,即使我不在"\n”字符附近,它也会删除块引号格式。是我误解了removeFormat,还是我创建BlockquoteBlot的方式有误?我主要从Quill站点上的Medium演示中获取这些代码,但我发现在某些情况下,我需要专门定义作用域,以便标记将被识别为块(这对于本演示可能不是必需的,但我将其包括在内,以防出现问题)。
发布于 2016-09-13 01:00:55
removeFormat目前的工作方式确实删除了用户高亮显示的所有块格式,即使它不是跨"\n“字符。当用户选择多行Issue #649时,这更有意义,但当只有一行被部分选中时,它可能不应该以这种方式工作。我创建了一个Github Issue来讨论这个问题。请随时加入进来。
发布于 2017-06-27 10:17:10
我知道这是一个旧的线程-作为代码的补充,以防有人没有选择任何东西-在Quilljs 1.2.6上工作
$('.cust-clear').click(function(ev) {
var range = quill.getSelection();
if (range.length ===0) {
let leaf, offset = quill.getLeaf(range.index);
quill.removeFormat(range.index - offset, range.index + leaf.domNode.length);
} else {
quill.removeFormat(range.index, range.length);
}
});发布于 2020-08-04 04:32:21
这应该是可行的
$('.cust-clear').click(function()
{
var range = editor.getSelection();
if (range){
if (range.length > 0) {
editor.removeFormat(range, Quill.sources.USER);
}
}
});https://stackoverflow.com/questions/39437723
复制相似问题