javascript - Quill JS 添加内联或 'formatBlock' 样式

标签 javascript jquery html quill

我正在使用 QuillJS 作为编辑器,在这个编辑器中我想创建一些自定义文本样式。您有默认值、粗体等已经存在,但我想扩展这些。例如,blockquote 会创建一个 block 引用,但我想要一个内嵌引用。为此,我理想地用跨度和类来包装它以应用所需的样式,但是我无法弄清楚如何使用 Quills API 实现这一点。当然,我可以创建一个自定义 block ,但这适用于整个文本部分,而不仅仅是选定的文本。所以我尝试在我的自定义 block 中使用 .formatText,但没有任何运气,尽管如果我将“引号”更改为“粗体”它确实......任何帮助/建议将不胜感激!

let Block = Quill.import('blots/block');

class quote extends Block { }
quote.blotName = 'quote';
quote.className = 'quote';
quote.tagName = 'span';
Quill.register({ 'formats/quote': quote });

//Handler to change inline
var quoteHandler = function(){
    var range = quill.getSelection();
    console.log(range);
    quill.formatText(range.index, range.length, 'quote', true);
}



/* Quill */
var quill = new Quill('.editor_space', {
    theme: 'snow',
    placeholder: 'Compose an epic...',
    modules: {
        toolbar:{
            container: '.main_toolbar',
            handlers: {
                'linebreak': linebreakHandler,
                'inlineQuote': quoteHandler,
            }
        }
    }
});

最佳答案

为了回答我自己的问题,我应该扩展 Inline 以使其显然是内联的。不需要处理函数。

let Inline = Quill.import('blots/inline');
class quote extends Inline {
    static create(value) {
        let node = super.create(value);
        return node;
    }
}
quote.blotName = 'quote';
quote.className = 'quote';
quote.tagName = 'div';
Quill.register(quote);

关于javascript - Quill JS 添加内联或 'formatBlock' 样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41615833/

相关文章:

javascript - 将数据从 JS 传递到 Laravel

html - 为什么我的菜单没有对齐?

html - 子元素和兄弟元素中的 Z-index 问题

javascript - MomentJS 如何获取格式化但未本地化的表示形式?

javascript - Jquery - 可以在 html 输入文本上使用 .attr 或类似的而不是正则表达式吗?

php - jqtree json数据与php和mysql

javascript - 滚动到页面顶部时似乎无法向页眉/div 添加样式

javascript - jquery.width() 和 jquery.height 有时会出错

javascript - 使用 Youtube Iframe API 创建的视频播放器停止使用 Chrome v.85

javascript - 如何在不使用 explode 函数的情况下解码 php 中的 json.stringify 数组?