2015-04-28 78 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);