在 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 的相关文章

  • 更改ckeditor的背景?

    如何更改用户键入文本的 CKEditor 的背景颜色 我需要动态地执行此操作 但找不到需要更改的元素 知道如何瞄准它吗 您可以尝试 CKEDITOR instances editor1 document getBody setStyle b
  • CKEditor 不需要的字符

    如何禁用 CKEditor 每次都获取我的信息 nbsp 当我不想要它们时 我正在使用 CKEditor 和 jQuery 适配器 我不想有任何 nbsp tags 经过一些研究后 我可能会对这个问题有所了解 不幸的是没有现成的解决方案 在
  • 如何修复错误无法在 Angular 2 CLI ckeditor 中找到名称“对象”

    我已经使用 cli 安装了 ng2 ckeditor npm install ng2 ckeditor save 然后将 CKEditor javascript 文件包含在我的索引文件中 然后在模块文件中导入模块 import CKEdit
  • Django Ckeditor 图像浏览器找不到图像

    所以我正在建立一个简单的博客来跟踪我的项目 我决定使用 CKeditor 作为所见即所得编辑器 除了图像部分之外 我能够使其所有内容正常工作 当我点击 图像浏览 时 我无法查看服务器中的图像 并且每当我上传图像时 它都会上传 但我无法查看它
  • Colorbox 中的 CKEditor 加载不起作用 [ Google Chrome ]

    我在我的项目中使用 Colorbox 我已将 CKEditor 集成到 colorbox 中 它在所有浏览器中工作正常 但在 Google Chrome 中存在一个小问题 编辑器将在第一次单击时正确打开 关闭弹出窗口并在不加载页面的情况下第
  • ckeditor 不读取媒体嵌入代码

    我使用 ckeditor 的媒体嵌入插件 它工作正常 代码正确保存在数据库和 youtube soundcloud 等中 页面上播放器显示正常 但是 当用户进入他可以编辑信息的管理页面时 内部和带有标签的文本不会显示 因此当用户单击 保存
  • CKEditor:删除“链接类型”选项,但将 URL 设置为默认链接类型?

    我正在使用 CKEditor 的链接插件 并且尝试删除 链接类型 选项 以便用户可以在 URL 字段中输入地址 而不必设置 链接类型 选项 当我使用下面的代码时 它会删除 链接类型 选项 但是当您尝试单击它创建的链接时 它不会按预期打开链接
  • Ckeditor 在 p 标签的开头和结尾显示额外的空间

    我在我的小型网络项目中使用 ckeditor 但是当我编辑内容或创建新内容时 它会在 p 标签和文本的开头后自动添加空格 当我删除空格并保存内容时它会起作用 但是当我再次编辑 它又添加了空格 如何删除它 我认为 p 标签的开头和文本之间的空
  • 单击任意位置以在 CKEditor 中聚焦

    在 FireFox 中 我可以单击 CKEditor 350px x 250px 中的任意位置 将焦点放在编辑器顶部的单个文本段落上 然而 在 IE6 中 我知道 但我们的客户坚持 我必须直接单击段落顶部以将光标聚焦并随后编辑文本 CKEd
  • Typo3 CKEditor 图片来自 FAL

    我使用 CKEditor 设置了全新的 TYPO3 8 7 4 安装 并且rte ckeditor image从 FAL 获取图像 在文档中rte ckeditor image它说 最大尺寸与魔法图像的配置有关 必须在 Page TSCon
  • 如何删除使用 django-ckeditor 上传的图像?

    我已经在 Django 管理界面的 CKEditor 中上传了一些图像 我可以通过单击编辑器中的 图像 按钮来浏览和选择图像 然后在弹出的窗口中单击 浏览服务器 这是弹出窗口的屏幕截图 我的问题是 如何删除服务器上的图像 不幸的是这是真的
  • 如何配置 ckeditor 不将内容换行到

    块中?

    我在用ckeditor http ckeditor com 在我的网站上 让用户更容易输入 HTML 但是 我从 ckeditor 返回的数据包含在 p p 块 这是我不想要的 是否有一些配置设置强制编辑器不将文本换行 将以下内容添加到您的
  • 外部调用UI按钮

    回答 结果可以在这里看到 http apitecture com dev cked index 2 html http apitecture com dev cked index 2 html 工作代码摘录 a color on click
  • CKEditor 安全最佳实践

    我在用http ckeditor com http ckeditor com 在我建立的一个小型 PHP MySQL 论坛中 我的问题 将用户创建的 HTML 像这样保存在数据库中然后在我的应用程序中重新显示它是否安全 我应该采取哪些预防措
  • iframe 中元素的 CKEditor 内联编辑器

    在应用程序中 我在 iframe 中有内容可编辑元素 并且希望将内联 CKEditor 应用于这些元素 它可以工作 除非我滚动 iframe 时 CKEditor 工具栏不会随之滚动 是否有特殊标志或某种方法可以让工具栏随 iframe 内
  • CKeditor 富文本编辑器在浏览器中显示 html 标签

    我刚刚在我正在构建的网站上安装了 CKeditor 富文本 WYSIWYG 编辑器 它似乎工作正常 除了它以编码 html 而不是常规 html 的形式将文本插入到我的 mysql 数据库中 然后当浏览器输出此内容时它将编码数据转换为常规
  • CKEditor 3.x - 动态添加 UI 元素到插件对话框

    我正在构建一个 CKEditor 3 x 插件 它允许通过与我们的后端系统绑定的单独查看器应用程序有条件地显示 HTML 的某些部分 我的 CKEditor 插件将用于定义这些条件 但我对如何动态地将 UI 元素添加到插件对话框感到困惑 在
  • 在CKEditor中,如何向按钮添加“文本”标签?

    editor ui addButton ImageUpload label Upload Image command popup image uploader icon this path images icon png 这就是我现在的代码
  • CKFinder 如何在选择图像(文件:选择)时获取尺寸 URL 和尺寸(宽度/高度)?

    我正在使用 CkFinder 3 成功上传图像后 我需要能够在用户单击 选择 按钮后进行检测 文件名 ID url 原始图像的宽度和高度 目前我正在使用files choose但我找不到有关 cb 事件的信息 知道如何解决吗 代码示例将不胜
  • CckEditor - 从 AJAX 加载的模板

    我正在使用 CkEditor 并且想要定义一个自定义模板 该模板使用 AJAX 函数来加载 HTML 字符串 我已经能够定义自定义模板 但如果我对模板对象的 html 属性使用函数 则该函数永远不会执行 是否可以使用 AJAX 和默认模板插

随机推荐