2017-02-15 14 views
2

私は現在CKEditorで働いています。私にはあなたの質問があります。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()); 

私の質問は、選択したノードの親タグを取得する方法です。

例Wordには、

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

私の選択は、私は以下の親タグを取得するにはどうすればよい、

<b>welcome</b> 

です。

<p></p> 
+0

'var sel = editor.getSelection()。getSelectedElement();を試してください。 alert(element.getName()); ' –

+0

申し訳ありませんが、私はこれを試していますが、私はうまくいきません。 –

+0

http://docs.ckeditor.com/#!/api/CKEDITOR.dom.selection –

答えて

2

回答が見つかりました。

//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]); 

そして、それは親タグれたHTMLを取得する選択を印刷します。

関連する問題