簡體   English   中英

CKEDITOR::獲取選中文本的父節點

[英]CKEDITOR :: Get selected text's parent node

我現在在 CKEditor 工作。我有一個問題要問你們。

我在 CKEditor 的文本區域中選擇特定文本並獲取選定的文本

節點 HTML 內容使用下面的代碼。

 var editor = CKEDITOR.instances.editor1;
 var sel = editor.getSelection();
 sel.selectElement(sel.getStartElement());
 var ranges = sel.getRanges();
 var el = new CKEDITOR.dom.element("div");

   for (var i = 0, len = ranges.length; i < len; ++i) {
             el.append(ranges[i].cloneContents());
                  }
  alert(el.getHtml());

以下返回當前選擇的文本 HTML 內容。

alert(el.getHtml());

我的問題是如何獲取所選節點的父標簽?

例子

示例詞是,

<p>hi<b>welcome</b>world<p>

我的選擇是,

<b>welcome</b>

我如何獲得下面的父標簽。

<p></p>

我找到了答案。

//Get range
range = xhtmlCKEditor.createRange();

range.setStart(anchors[0].tag , 0 );
range.setEnd(anchors[0].tag.getLast(), 1 );

var firstNode = range.startContainer.getParent();
var lastNode = range.endContainer.getParent();
if(lastNode.type === CKEDITOR.NODE_ELEMENT && lastNode.getName() === "span")
{
    range.setEndAfter(lastNode);

}

//Make end Get full if is tcElement
if(firstNode.type === CKEDITOR.NODE_ELEMENT && firstNode.getName() === "p")
{
    range.setStartBefore(firstNode);
}
xhtmlCKEditor.getSelection().selectRanges([range]);

然后打印 Selection 它將獲得 html With parent tag

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM