在 CKEditor 中的元素之前插入 HTML

2024-01-21

在 CKEditor 中的现有元素之前以编程方式插入 HTML(代表 CKEditor 小部件)的最佳方法是什么?

可编辑内容未获得焦点且当前未被编辑。

例如,假设编辑器的内容是:

<h1>Here's a title</h1>
<h2>Here's a subtitle</h2>
<p>Here's a paragraph</p>
<p>Here's a paragraph</p>
<p>Here's a paragraph</p>

现在,假设我参考了第二个<p>元素。在此标签之前插入 html 的最佳方法是什么? (请记住,我想要插入的 HTML 在插入后将成为 Ckeditor 小部件。)

非常感谢您的帮助,

Michael


使用当前的API,不可能在不涉及选择的情况下在特定位置插入HTML字符串EDIT:从 CKEditor 4.5.0 开始这是可能的 - 请阅读下文),因为editor.insertHtml http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-insertHtml方法在选择位置插入。但是,如果您的 HTML 字符串仅包含一个元素(具有一些祖先),那么您可以轻松使用editor.insertElement http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-insertElement在较低级别,当您可以指定要插入元素的范围时:

var range = editor.createRange(),
    element = CKEDITOR.dom.element.createFromHtml( elementHtml );

// Place range before the <p> element.
range.setStartAt( elementP, CKEDITOR.POSITION_BEFORE_START );
// Make sure it's collapsed.
range.collapse( true );

// Insert element at the range position.
editor.editable().insertElement( element, range );

正如你所看到的,这段代码使用了editable.insertElement http://docs.ckeditor.com/#!/api/CKEDITOR.editable-method-insertElement,其使用者为editor.insertElement.

附言。请记住insertElement不会向上转换并初始化您的小部件。您可以在这里找到更多相关信息 -CKEditor,初始化用 insertElement 添加的小部件 https://stackoverflow.com/questions/20237845/ckeditor-initialize-widget-added-with-insertelement/20245520#20245520.

从 4.5.0 开始

CKEditor 4.5.0 推出editor.editable().insertHtmlIntoRange() http://docs.ckeditor.com/#!/api/CKEDITOR.editable-method-insertHtmlIntoRange以及ASArange参数为editor.insertHtml() http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-insertHtml。后一种方法是更高级别的方法,因此它将处理撤消管理器和设置选择来代替插入。前一种方法是一种低级方法,它仅插入数据。

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

在 CKEditor 中的元素之前插入 HTML 的相关文章

  • Django-CKEditor 不会渲染图像

    我已经安装了 Django CKEditor 并对其进行了配置以用于开发目的 现在我可以编辑文本并将其作为文本字段保存到数据库中 但是在插入图像时我遇到了很大的问题 我可以插入图像 它似乎可以正确保存到本地主机 正确的文件夹 但是当将图像渲
  • CK编辑器。打开具有默认值的图像属性窗口

    我一直在查看 API 但不知道如何使用默认 url 打开图像对话框 我用execCommand函数 如下 var editor CKEDITOR instances editor1 editor execCommand image 这很好用
  • Ckeditor 在 p 标签的开头和结尾显示额外的空间

    我在我的小型网络项目中使用 ckeditor 但是当我编辑内容或创建新内容时 它会在 p 标签和文本的开头后自动添加空格 当我删除空格并保存内容时它会起作用 但是当我再次编辑 它又添加了空格 如何删除它 我认为 p 标签的开头和文本之间的空
  • 一页中有多个 CKEditor5 - 性能问题

    我从后端收到一组对象 其中包含文本作为字段之一 我希望能够编辑该文本 到目前为止我有这样的事情 div div class card div class card header div class row some other input
  • 单击任意位置以在 CKEditor 中聚焦

    在 FireFox 中 我可以单击 CKEditor 350px x 250px 中的任意位置 将焦点放在编辑器顶部的单个文本段落上 然而 在 IE6 中 我知道 但我们的客户坚持 我必须直接单击段落顶部以将光标聚焦并随后编辑文本 CKEd
  • 如何设置CKEditor 5(经典编辑器)的高度

    在 CKEditor 4 中 有一个配置选项可以更改编辑器高度 配置高度 http docs ckeditor com api CKEDITOR config cfg height 如何更改 CKEditor 5 的高度 经典编辑器 回答我
  • 如何查看CK编辑器版本

    我的项目中有一个现有的 CK 编辑器文件夹 我怎样才能知道它的版本 有记录吗 只需在 config js 文件中发出如下警报 它就会给出值 alert CKEDITOR version 或者您可以直接在文件 ckeditor php4 ph
  • ckeditor“key”的使用 CKEDITOR.instances.editor.on('key', function (e){

    我意识到存在有关如何为 CKEDITOR 4 实现事件处理程序的问题 我可以使用此代码来获取按键按下数据 但我似乎无法在按键后获取数据 CKEDITOR instances editor on key function e document
  • CKEditor 4 - 如何将字体系列和字体大小控件添加到工具栏

    我在 config js 中有一个 config toolbarGroups 设置 但我不知道该组使用什么名称来添加字体系列 字体大小控件 似乎缺乏这方面的文档 我发现一些建议 我应该使用 CKBuilder 创建一个已经包含它的包 但我不
  • VueJS CKeditor5上传图片

    在 Vuejs 中使用 CKeditor5 上传图像时遇到问题 第一次尝试过简单上传适配器 https ckeditor com docs ckeditor5 latest features image upload simple uplo
  • 允许在 ckeditor 中嵌入 oembed 标签

    我想将 oembed 标签放入 TYPO3 的 ckeditor RTE 中 这样我想将像 Instagram Facebook 或 Twitter 这样的社交帖子放入一些新闻文章中 在一些文本的中间 为此 我激活了 ckeditor 的嵌
  • CKEditor 5 通过外部 url 插入图像

    我想知道如何仅通过 URL 插入图像 用户从其他网站获取它 我需要实现一个简单的img 源 在 CKEditor 5 中 问题是 默认情况下 编辑器要求我上传图像 而我需要插入外部 url 我读过很多相关主题 1 https stackov
  • iframe 中元素的 CKEditor 内联编辑器

    在应用程序中 我在 iframe 中有内容可编辑元素 并且希望将内联 CKEditor 应用于这些元素 它可以工作 除非我滚动 iframe 时 CKEditor 工具栏不会随之滚动 是否有特殊标志或某种方法可以让工具栏随 iframe 内
  • 防止 CKEditor 添加“data-cke-saved”并转换 <

    我有 CKEditor 的 jQuery 实现 我们经常使用对话框将 HTML 标记添加到 A 标记的 标题 属性 然而 当我们这样做时 它会转换 HTML 代码 以便将其解析为文本 我们需要代码保持其输入时的确切形式 而不是在任何地方放置
  • ckeditor 4.5 fileUploadRequest 事件未触发

    我有一个 html id 为 id textarea 的文本区域 editor CKEDITOR inline id textarea filebrowserBrowseUrl browse url filebrowserUploadUrl
  • 如何判断CKEditor是否已加载?

    如何确定 CKEditor 是否已加载 我查看了API文档 但只能找到loaded事件 我想检查 CKEditor 是否已加载 因为如果我第二次加载它 我的文本区域就会消失 The loaded活动对我不起作用 instanceReady
  • 如何在 Angular JS 应用程序中使用 ckeditor? [复制]

    这个问题在这里已经有答案了 我是 angularJS 新手 我需要在我的应用程序中使用 ckeditor 作为文本区域 在我在 Angular 应用程序上尝试之前 我已经完成了一个 仅 html 网页 我已经生成了我的 ckeditor 包
  • 如何使用 TypeScript 和 Angular 2 将插件添加到 ng2-ckeditor ?

    我正在尝试添加Justify插件到我的 ckeditor 但不幸的是我找不到任何关于如何将插件添加到 ng2 ckeditor 的信息 另外 我找不到任何应该添加插件的目录或配置文件 我正在使用 ng2 ckeditor1 0 6使用 Ty
  • 如何使用 jQuery 隐藏和显示 CKEditor?

    以下代码应允许隐藏 显示 CKEditor 表单 a Hide a a Show a
  • 在 CKEditor 中设置字体大小和字体系列

    我正在使用 ckeditor 我想问一下这个插件如何设置font family和font size 我尝试过使用 CKEDITOR config font defaultLabel Arial CKEDITOR config fontSiz

随机推荐