1

我目前正在一个可以编辑文章的项目中使用Medium Editor JS Clone 。

编辑器工作得很好,我可以格式化元素并且代码很干净,但我现在正试图找到一种在编辑时添加照片的方法。

一个很好的解决方案是在绝对模式下向活动段落添加一个侧边按钮,但我还没有找到任何方法来向当前活动段落添加一个类。

这是它生成的:

<div class="editable" contenteditable="true" spellcheck="true" data-medium-editor-element="true" role="textbox" aria-multiline="true" data-medium-editor-editor-index="1" medium-editor-index="574f8260-cdfd-bf53-e5e4-3fff9da2aa19" data-placeholder="Scrivi il testo..." data-medium-focused="true">
    <p>Hello this is an editor test.</p>
    <p>This is an another paragraph.</p>
</div>

这是我想要的:

图片 问题描述

因此,知道编辑器 div 中的哪个 p 是当前活动的,将允许我设置侧按钮的顶部位置,然后单击将刚刚上传的照片附加到段落中。

4

2 回答 2

1

您可以使用getSelectedParentElement函数找到当前活动的元素(选择所在的位置)

editor.getSelectedParentElement()
于 2016-11-10T05:17:46.013 回答
1

我相信在大多数情况下,使用getSelectedParentElement()应该可以正常工作,但在某些情况下,调用editor.getSelectedParentElement()可能不会为您提供您正在寻找的顶级块容器元素。可能存在某些类型的格式,其中元素可以相互嵌套(即 a<pre>中的 a<p>或 a<p>中的 a <blockquote>

还有另一种getTopBlockContainer(element)辅助方法公开MediumEditor.util.getTopBlockContainer(element),它将接收一个元素并返回顶级块元素容器,该容器是<div>编辑器根目录的直接子元素。

因此,如果您希望始终获得作为根编辑器的直接子元素的块元素<div>,您可以使用 和 的组合,getSelectedParentElement()如下getTopBlockContainer()所示:

var topBlock = MediumEditor.util.getTopBlockContainer(editor.getSelectedParentElement());
于 2017-02-10T08:55:44.930 回答