Froala 添加自定义预编码按钮

2024-04-30

我正在尝试创建一个代码按钮Froala http://editor.froala.com/编辑器基本上可以通过按执行与此处相同的操作CNTRL+K。现在我想我有两个选择。

第一个是编辑 froala-editor.js 文件,因为 Froala 已经有一个“代码”按钮,该按钮仅添加<pre>标签。如果我能以某种方式让它也添加<code>标签,问题解决。不幸的是我没有让它发挥作用。

第二个选项是创建一个自定义按钮,到目前为止我有这段代码:

$('textarea[name="description"]').editable({
    //Settings here
    customButtons: {
        insertCode: {
            title: 'Insert code',
            icon: {
                type: 'font',
                value: 'fa fa-code'
            },
            callback: function() {
                this.saveSelection();

                if (!this.selectionInEditor()) {
                    this.$element.focus(); // Focus on editor if it's not.
                }

                var html = '<pre><code>' + this.text() + ' </code></pre>';

                this.restoreSelection();
                this.insertHTML(html);
                this.saveUndoStep();
            }
        }
    }
});

它以某种方式工作,但它有缺陷并且会产生奇怪的 html,如下所示:

<p><code></code>
  <pre><code>asdasdasdasd
</code></pre>
</p>

任何帮助完成选项一或选项二的帮助将不胜感激。


如果您升级到 Github 上提供的版本 1.2.3,您的代码应该可以工作https://github.com/froala/wysiwyg-editor https://github.com/froala/wysiwyg-editor。无需保存/恢复选择。


稍后编辑: 这是一个 jsFiddlehttp://jsfiddle.net/9pmmg1jk/ http://jsfiddle.net/9pmmg1jk/.

customButtons: {
  insertCode: {
    title: 'Insert code',
      icon: {
        type: 'font',
          value: 'fa fa-code'
      },
        callback: function() {
          if (!this.selectionInEditor()) {
            this.$element.focus(); // Focus on editor if it's not.
          }

          var html = '<code>' + (this.text() || '&#8203;') + '<span class="f-marker" data-type="false" data-id="0" data-fr-verified="true"></span><span class="f-marker" data-type="true" data-id="0" data-fr-verified="true"></span></code>';

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

Froala 添加自定义预编码按钮 的相关文章

随机推荐

  • 如何使用 Vapor 3 处理多部分请求

    我是一名 Vapor 初学者 我选择从 Vapor 3 rc 开始 因为它似乎破坏了 Vaport 2 的更改 不幸的是 目前还没有完整的文档 我目前正在尝试将一个简单的 txt 文件从 Postman 上传到我的 Vapor 3 本地服务
  • 使 QLabel 可点击

    我有一个充满 QPixmap 的 Qlabel 我想在单击该标签后启动一个进程 函数 我扩展了 QLabel 类 如下所示 from PyQt5 QtCore import from PyQt5 QtWidgets import from
  • python celery - 导入错误:没有名为 _curses 的模块 - 尝试运行 manage.py celeryev 时

    背景 视窗 7 x 64 Python 2 7 姜戈1 4 Celery 与 Redis 捆绑包 在尝试运行 manage py celeryev 时 我在终端中收到以下错误 import curses File c Python2 lib
  • 使用 LinkedIn REST API 更新个人资料

    是否可以通过 LinkedIn API 更新个人资料的教育 专业和 或经验 我可以正常进行正常的 GET 调用 我在这里问是因为他们网站上的文档没有产生任何结果 而 Stackoverflow 会有更多的实践经验 编辑 进一步的搜索使我发现
  • 懒惰评估不那么懒惰吗?

    我一直听说 C 使用惰性求值 所以对于某些代码 比如if true DoExpensiveOperation 将返回true不执行DoExpensiveOperation 在面试测试中我看到了以下问题 static bool WriteIf
  • 在PC上的Firefox上模拟Android的Webview?

    作为我的软件开发工作 针对 Android 的一部分 我需要在通过 Android 的 WebView 查看时检查大量 HTML 页面的内容 到目前为止 我已经能够通过将 HTML 内容转储到文件中来实现这一点 data data
  • 在链接服务器上执行 SP 并将其放入临时表中

    需要有关以下问题的一些帮助 Case 1 存储过程位于服务器 1 上 调用来自服务器 1 declare tempCountry table countryname char 50 insert into tempCountry exec
  • AspectJ - 接口实现方法的切入点

    我有 SomeInterface 的几个实现 问题是 在 SomeInterface 的所有实现中 executeSomething 方法的切入点是什么 public class SomeImplementation implements
  • 为什么 mongoDB 节点驱动程序会创建不需要的连接?

    当我尝试使用版本 3 6 0 中的 mongodb Nodejs 本机驱动程序建立与数据库的单个 mongodb 连接时 遇到了一种奇怪的问题 我的想法是在所有客户端会话中只打开一个连接 并在我的 Express 服务器中的不同路由中重用它
  • 是否可以在 Android 或 Blackberry 上运行小程序?

    Java站点是这样的java com http www java com says KVM 移动设备的虚拟机 与 JVM Java 虚拟机 相对应 它用于在移动设备上运行用 Java 技术编写的小程序和应用程序 KVM 必须由制造商安装 它
  • TypeScript 出现错误 TS2304:找不到名称“require”

    我正在尝试启动并运行我的第一个 TypeScript 和 DefinelyTyped Node js 应用程序 但遇到了一些错误 当我尝试转译简单的 TypeScript Node js 页面时 收到错误 TS2304 找不到名称 requ
  • 如何在可组合项中使用 hilt 注入单例

    我正在尝试注入一个在可组合项内的 hiltmodule 中定义的单例类 我知道如何注入视图模型 但是单例类呢 Inject lateinit var mysingleton MySingletonClass 该代码在活动中运行良好 但将其从
  • Protractor e2e 测试登录重定向

    目前有部分端到端测试 输入用户名 密码并单击 登录 它成功完成了这一操作 但在 谢谢您已登录 页面结束 而不是像我通过浏览器登录那样被重定向到 帐户门户 或 仪表板 这个项目是新的 但我们正在使用 OAuth 主要问题 这听起来像是需要 h
  • 将 NodeJS Rest 服务与 wso2 集成

    我的其余 Web 服务都是用 Nodejs 编写的 我想为这些 API 实现基于角色的 管理员 用户 超级管理员等 授权 如何将 wso2 与 NodeJS 一起使用 您可以使用 WSO2 API Manager 来实现此目的 这是一篇不错
  • Swagger @ApiOperation 可以允许在 Java 中指定列表的列表吗?

    我在 Java 类中有一个方法 其签名如下所示 我想为其添加 Swagger Rest 文档 public List
  • 在 pandas 中重新采样

    我在另一个话题上问了一个问题Link https stackoverflow com questions 33446776 how to resample starting from the first element in pandas
  • 无法在 odoo 10 Windows 中执行命令 lessc

    我想问一下在windows上安装odoo 10的问题 我有这样的错误 无法执行命令 lessc 我在另一篇文章中看到过这个问题 但他们的文章只是讨论 mac 和 ubuntu 服务器 而不是在 Windows 中 任何人都可以帮我解决这个
  • 在 ios 应用程序中将 UIImagePickerController 锁定为纵向模式

    在我的 IOS 应用程序中 当我打开相机时 我已将图像放置在相机视图上 在肖像模式下看起来不错 但当它变成横向模式时 看起来就有些奇怪了 所以我想锁定UIImagePickerController在肖像模式下 以下是我的 ui 图像选择器控
  • 数据库中的编码 HTML 返回页面

    我在数据库中有以下编码 lt p gt Content lt span style quot color ffffff quot gt lt span style quot background color ff0000 quot gt 1
  • Froala 添加自定义预编码按钮

    我正在尝试创建一个代码按钮Froala http editor froala com 编辑器基本上可以通过按执行与此处相同的操作CNTRL K 现在我想我有两个选择 第一个是编辑 froala editor js 文件 因为 Froala