如何向 Quill.js 添加新格式(
标签)?

2024-03-21

我想添加一个按钮来添加<hr>标记到quill.js(测试版) http://beta.quilljs.com/docs/quickstart/ editor.

这里的fiddle https://jsfiddle.net/Lgxkj4ag/.

<!-- Initialize Quill editor -->
    <div id="toolbar-container">
        <span class="ql-formats">
          <button class="ql-hr"></button>  //here my hr-button
        </span>
        <span class="ql-formats">
          <button class="ql-bold"></button>
          <button class="ql-italic"></button>
        </span>
    </div>

    <div id="editor">

      <p>Hello World!</p>
      <hr> // this gets replaced by <p> tag automatically *strange*
      <p>Some initial <strong>bold</strong> text</p>
    </div>

我初始化我的编辑器:

 var quill = new Quill('#editor', {
        modules: {
          toolbar: '#toolbar-container'
        },
        placeholder: 'Compose an epic...',
        theme: 'snow'
      });

这里我添加一个<h1>我的编辑器的标签功能非常好用:

  $('.ql-hr').on("click",function(){

      var range = quill.getSelection();      
      var text = quill.getText(range.index, range.length);
      quill.deleteText(range.index, range.length);
      quill.pasteHTML(range.index, '<h1>'+text+'</h1>');
  })

现在我尝试同样的方法<hr>标签,根本不起作用:

  $('.ql-hr').on("click",function(){

      var range = quill.getSelection();      
      quill.pasteHTML(range.index, '<hr>');
  })

the <hr>初始标签div#editor被替换为<p>标签。我添加的按钮功能不起作用<hr>标签,但对于其他标签它也有效。我知道<hr>标签没有实现到 Quill.js,这也是我得到这个控制台输出的原因:

quill:工具栏忽略附加到不存在的格式 hr select.ql-hr

有没有什么办法解决这一问题?


我仍然不知道为什么这个问题被否决,但解决方案如下:

导入嵌入blot https://github.com/quilljs/quill/tree/develop/blots- 重要:不是“阻止”,不是“嵌入”,“阻止/嵌入”!

var Embed = Quill.import('blots/block/embed');

定义一个扩展该 Embed 的新类

class Hr extends Embed {
    static create(value) {
        let node = super.create(value);
        // give it some margin
        node.setAttribute('style', "height:0px; margin-top:10px; margin-bottom:10px;");
        return node;
    }
}

定义您的标签

Hr.blotName = 'hr'; //now you can use .ql-hr classname in your toolbar
Hr.className = 'my-hr';
Hr.tagName = 'hr';


按钮编写自定义处理程序
var customHrHandler = function(){
    // get the position of the cursor
    var range = quill.getSelection();
    if (range) {
        // insert the <hr> where the cursor is
        quill.insertEmbed(range.index,"hr","null")
    }
}

注册您的新格式

Quill.register({
    'formats/hr': Hr
});

使用 HTML 中的正确选择器实例化您的编辑器

var quill = new Quill('#editor', {
    modules: {
        toolbar: { container: '#toolbar-container',
            handlers: {
                'hr': customHrHandler
            }
        }
    },
    theme: 'snow'
});

HTML 部分保持不变。整个


功能可以类似于 格式.

谢谢你,乐于助人的社区。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何向 Quill.js 添加新格式(
标签)? 的相关文章

  • 如何在css3中制作曲线风格的菜单?

    是否可以用css3制作曲线 圆弧样式的菜单 我可以使用canvas或HTML5中的其他东西来实现这一点吗 预先感谢 洛根 不幸的是 我不知道有什么优雅的解决方案 特别是当涉及到菜单项时 但弧线本身应该可以在纯 css 和几个 html 元素
  • 是否可以进行条件解构或有后备?

    我有一个具有许多深层嵌套属性的对象 我希望能够访问 MY KEY 上的属性 如下 但如果该属性不存在 则获取 MY OTHER KEY 我怎样才能做到这一点 const X Y MY KEY Values segments segment
  • 如何在 HTML 表格上使用分页?

    我正在尝试使用这个分页library http flaviusmatis github io simplePagination js 在我的 HTML 表格页面 特别是浅色主题 中 但不知何故 我无法理解如何在我的 HTML 页面中以这种方
  • 用于传输命名参数和正文的云端点资源属性不起作用

    我正在尝试通过gapi client rpc调用实现对谷歌云端点的调用 如文档中所述 和Google Cloud Endpoints 使用 JS 客户端进行调用 传递参数和 JSON 正文 https stackoverflow com q
  • 修剪日期格式 PrimeNG 日历 - 删除时间戳、角度反应形式

    我将以下内容推入我的反应形式 obj 中2016 01 01T00 00 00 000Z但我想要以下2016 01 01 有谁知道有一个内置函数可以实现上述目的 我已经搜索过文档here https www primefaces org p
  • 如何避免 TypeScript 中出现虚假的“未使用参数”警告

    我遇到过很多次这种情况 最后决定弄清楚正确的方法是什么 如果我有一个声明方法的抽象父类 然后一些具体子类在其实现中实现真正的逻辑 并且显然使用方法参数 但某些子类不需要在该方法中执行任何操作 因此不要使用方法参数 那些不必执行任何操作的方法
  • 创建 html 结构,每个 li 中仅允许 3 个 div 元素。在 React + underscore.js 中

    这是以下内容的位副本如何创建每个 li 中仅允许 3 个 div 元素的 html 结构 在 React underscore js 中 https stackoverflow com questions 38008023 how to c
  • Intro.js 2页然后返回首页

    我在用intro js http introjs com 为我的网站创建一个小介绍 我希望游览从第 1 页 主页 2 另一页 然后回到第 1 页 主页 我已经成功地从第 1 2 页开始 但不确定如何让它返回到第 1 页 我对 javascr
  • HttpWebRequest vs Webclient(特殊场景)

    我知道这个问题之前已经回答过thread https stackoverflow com questions 1694388 webclient vs httpwebrequest httpwebresponse 但我似乎找不到详细信息 在
  • Rails 中的 PDF 导出

    我需要将包含一些图表的 HTML 页面导出为 PDF 有哪些好的 gem 可以做到这一点 PDFKit http railscasts com episodes 220 pdfkit http railscasts com episodes
  • JavaScript 中的最短路径

    几周来我一直在寻找一种在 JavaScript 中计算最短路径的方法 我一直在玩书数据结构和算法作者 格罗纳 Groner 名字恰如其分 https github com loiane javascript datastructs algo
  • 如何动态隐藏和显示html元素

    html 输入元素使用链接标记隐藏和显示 示例 雅虎邮件密件抄送隐藏和显示 这是用 JavaScript 完成的 对于简单的 Javascript 即不使用jQuery你可以这样做 document getElementById idOfE
  • Facebook API Javascript JSON 响应

    function getUser FB api me function response console log Response is response alert Your name is response first name ale
  • Socket.io 与服务器离线连接

    如何检测服务器是否离线或由于其他原因无法连接 我的代码看起来像这样 this socket io connect connectionInfo reconnect false 它不会抛出任何错误 因此 try catch 子句不起作用 Us
  • 在React组件中使用的字符串变量中插入html

    我正在为我的投资组合网站构建一个反应应用程序 目前我已经用 JSX 编写了应用程序 因此我可以添加以下内容 class Project extends React Component render return div h1 this pr
  • 什么是 TinyMCE jQuery 包?

    我被要求在项目中使用 TinyMCE 编辑器 在下载页面上 有一个主包 然后是一个 jQuery 包 This package contains special jQuery build of TinyMCE and a jQuery in
  • 使用 javascript/jquery 从数据库格式化日期的正确方法

    我正在调用包含日期时间数据类型的数据库 日期看起来像这样 2005 05 23 16 06 00 000 当用户从列表中选择某个项目时 我想在表格中显示它 我调用我的控制器操作并返回所有时间的 Json 并将它们放入表中 问题是日期完全错误
  • 错误:模块“html”不提供视图引擎(Express)

    我正在尝试设置一个简单的路由应用程序 但在渲染页面时不断遇到错误 Error Module html does not provide a view engine 奇怪的是我已经在 app js 文件中指定了视图引擎 但仍然收到错误 app
  • Javascript/jQuery 外部高度()

    Does idOfLememt outerHeight 对所有浏览器产生相同的结果 IE7 有什么不同吗 只要去http api jquery com outerHeight http api jquery com outerHeight
  • Angular 2:使用正则表达式进行数字验证

    我正在尝试验证 IE 11 中的数字字段

随机推荐

  • 如何在 Android 中找到附近的应用程序用户?

    我正在制作一个应用程序 需要能够找到附近的人 他们是我的应用程序的用户 我看了很多类似问题的答案 似乎我别无选择 只能不断将用户的当前位置上传到服务器 并在必要时获取附近的用户列表 那么我的问题是 1 要获取附近的列表 应该有一些计算距离的
  • Zuul 调用的基本身份验证服务

    我是 Zuul 作为边缘服务器 所以所有请求都经过此边缘服务器 我有一个微服务A A的所有Web服务都受到基本身份验证的保护 我们如何通过Zuul代理来调用A b 的服务呢 我应该为消息添加标头吗 这是我的 Zuul 过滤器 public
  • FullScreenChange 事件不起作用

    我尝试绑定 FullScreenChange 事件 但它不起作用 也许我做错了什么 document bind webkitfullscreenchange mozfullscreenchange fullscreenchange func
  • _1 是 C++0x 的一部分吗?

    我见过two https stackoverflow com questions 4008369 recent answers https stackoverflow com questions 4009530 using 1作为纯 C 0
  • PyArrow 表:过滤行

    我有一个RecordBatch从 Plasma DataStore 中 我可以将其读入pyarrow RecordBatch or a pyarrow Table 我现在尝试在将其转换为 pandas 之前过滤掉行 to pandas 有没
  • 当我没有使用任何广告服务时,应用程序因“IDFA 不正确”而被拒绝

    I use 谷歌分析在我的应用程序中 所以它需要广告支持框架 从昨天开始 当我尝试发布更新时 我的应用程序被拒绝 并显示以下错误消息 亲爱的开发者 我们发现您最近的交货存在一个或多个问题 Zee新闻英语 为了处理您的交货 需要解决以下问题
  • 在 pdf 中添加撤销详细信息,同时签名

    我已经使用 PC 上附加的数字令牌对 pdf 进行了数字签名 使用库 itext Sharp 附加相同的内容 当我在 adobe reader 中打开相同内容时 它显示无法执行撤销 当我看到详细信息时 它显示颁发者证书之一被撤销未检查错误
  • 仅包含数据框中每列的异常值

    我有一个数据框如下 chr leftPos TBGGT 12 try 324Gtt AMN2 1 24352 34 43 19 43 1 53534 2 1 1 9 2 34 15 7 9 18 3 3443 100 4 4 9 3 344
  • 卡夫卡领导者选举什么时候发生?

    Kafka High Level Producer 何时以及多久选举一次领导者 它是在发送每条消息之前执行还是仅在创建连接时执行一次 每个代理都有有关主题 和分区 及其领导者列表的信息 每当新领导者当选或分区数量发生变化时 动物园管理员都会
  • Keras 1.0:获取中间层输出

    我目前正在尝试可视化 Keras 1 0 中中间层的输出 我可以使用 Keras 0 3 实现 但它不再起作用了 x model input y model layers 3 output f theano function x y 但我收
  • 滚动到 div 中的某个元素

    我有一个绝对定位的 div 它充当页面中心的模式窗口 模式窗口可垂直滚动 右侧有一个滚动条 页面本身也可以垂直滚动 右侧有一个滚动条 我希望能够单击链接并使模式窗口滚动到链接的项目 我几乎可以使用 target scrollIntoView
  • 检查后在 Gradle 插件中运行任务

    我在 Groovy 下编写了一个 Gradle 插件buildSrc as package test import org gradle api Plugin import org gradle api Project class Samp
  • Java 精确计算 - 使用选项

    我试图对 JAVA SQL 中精确计算的选项进行一些简洁的概述 到目前为止 我找到了以下选项 使用双打 接受他们的缺点 不行 use BigDecimals 在复杂的公式中使用它们对我来说是有问题的 use String format De
  • 将函数应用于列表中所有数据帧的某些列,然后为列赋值

    类似问题已回答here https stackoverflow com questions 22002838 same function over multiple data frames in r 我有一个数据框列表 即 1000 如下所
  • 增强 qi::rule 上的精神语义动作

    我一直在阅读语义动作 我有一个如下所示的规则 property rule identifier rule gt gt lit L gt gt type specification rule gt gt lit L gt gt alnum g
  • Emacs:如何将杀戮环从系统剪贴板中分离出来?

    默认情况下 Emacs 23 x 似乎会将被删除的内容复制到删除环和系统剪贴板 是否可以将杀戮环和剪贴板分开 例如 ctrl k 将内容放入终止环 cmd x 将内容放入系统剪贴板并保留终止环 这在中讨论过这个线程 http lists g
  • 如何在每个测试方法之前和之后执行sql脚本

    有一个 Sqlspring中的注释允许执行sql测试方法前后的代码 Test Sql init sql Sql scripts clean sql executionPhase Sql ExecutionPhase AFTER TEST M
  • 与 Kotlin 泛型的混淆

    我是 Kotlin 的新手 我正在尝试编写一些相当简单的代码 但是我不知道如何使用泛型来使其工作 我有一个Handler代表事物处理程序的特征 我无法更改处理程序的代码 因为它来自库 trait Handler
  • 当我构建多个 ProductFlavors 时,使用 Facebook SDK INSTALL_FAILED_CONFLICTING_PROVIDER

    我正在构建一个包含多个 Android 应用程序productFlavors 并使用Facebook SDK v4 1进行登录和分享内容 问题是 当我尝试在已安装相同应用程序 但风格不同 的设备上安装应用程序时 会引发错误 它不允许我安装第
  • 如何向 Quill.js 添加新格式(
    标签)?

    我想添加一个按钮来添加 hr 标记到quill js 测试版 http beta quilljs com docs quickstart editor 这里的fiddle https jsfiddle net Lgxkj4ag div sp