2015-04-28 48 views
1

當選擇一個文本時,我想要一個跨度出現在它上面(如工具提示)。這是跨度:獲取CKEditor中選擇的座標

var span = new CKEDITOR.dom.element.createFromHtml('<span style="position:absolute; display: none; " >Tooltip</span>'); span.setStyle('border', '2px solid black'); span.setStyle('width', '50px'); span.setStyle('height', '50px');

必須選擇上面的加入,但我不能找到一個辦法讓選擇的座標:

span.setStyle('display', 'none'); 
var editorSel = editor.getSelection(); 
var selElement = editorSel.getSelectedElement(); 
if (editorSel.getSelectedText() != '') { 
setTimeout(function() { 
    //Some way to get the coordinates 
    span.setStyle('top', top + 'px'); 
    span.setStyle('left', left + 'px'); 
    span.setStyle('display', 'block'); 

    var ranges = editorSel.getRanges(); 
    var range = ranges[0]; 
    range.insertNode(span); 
} 

任何幫助將高度讚賞。

回答

0

您可以使用以下從獲得的CKEditor編輯器窗口對象,雖然有可能是一個更直接的方式:

var win = editor.window.$; 

從那裏,你可以使用getSelectionCoords()this answer

var coords = getSelectionCoords(win);