首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除Quill中的内联格式

删除Quill中的内联格式
EN

Stack Overflow用户
提问于 2016-09-11 23:31:56
回答 3查看 6.5K关注 0票数 2

我在让removeFormat正常工作时遇到了一些麻烦。有趣的是,我还以为几天前我就能正常工作了;但现在我检查了一下,发现它不是正确的。无论所选内容位于何处,它都会删除块级格式。一个简单的例子,使用Quill Quickstart,只做了一些修改:

代码语言:javascript
复制
  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);
  });
代码语言:javascript
复制
<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演示中获取这些代码,但我发现在某些情况下,我需要专门定义作用域,以便标记将被识别为块(这对于本演示可能不是必需的,但我将其包括在内,以防出现问题)。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-09-13 01:00:55

removeFormat目前的工作方式确实删除了用户高亮显示的所有块格式,即使它不是跨"\n“字符。当用户选择多行Issue #649时,这更有意义,但当只有一行被部分选中时,它可能不应该以这种方式工作。我创建了一个Github Issue来讨论这个问题。请随时加入进来。

票数 2
EN

Stack Overflow用户

发布于 2017-06-27 10:17:10

我知道这是一个旧的线程-作为代码的补充,以防有人没有选择任何东西-在Quilljs 1.2.6上工作

代码语言:javascript
复制
 $('.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);
    }
  });
票数 2
EN

Stack Overflow用户

发布于 2020-08-04 04:32:21

这应该是可行的

代码语言:javascript
复制
$('.cust-clear').click(function() 
{
    var range = editor.getSelection();
    if (range){
        if (range.length > 0) {
            editor.removeFormat(range, Quill.sources.USER);
        }
    }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39437723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档