我正在使用CKEDITOR 4
. 如何找出滚动/鼠标/光标XY位置 (不是窗口)?
我已经测试了下面的代码,但它给出了窗口的滚动位置:
var win = new CKEDITOR.dom.window( window );
var pos = win.getScrollPosition();
alert( "pos.x :: " + pos.x + " pos.y :: " + pos.y );
我需要 CKEDITOR 文本区域的 XY 位置。
我正在使用CKEDITOR 4
. 如何找出滚动/鼠标/光标XY位置 (不是窗口)?
我已经测试了下面的代码,但它给出了窗口的滚动位置:
var win = new CKEDITOR.dom.window( window );
var pos = win.getScrollPosition();
alert( "pos.x :: " + pos.x + " pos.y :: " + pos.y );
我需要 CKEDITOR 文本区域的 XY 位置。
尝试这个
var selectedRange = selected.getRanges()[0];
var node = selectedRange.startContainer;
var value = node.getText();
var position = selectedRange.endOffset;
或查看此参考
这是代码以防万一链接断开!
function doGetCaretPosition (ctrl) {
var CaretPos = 0; // IE Support
if (document.selection) {
ctrl.focus ();
var Sel = document.selection.createRange ();
Sel.moveStart ('character', -ctrl.value.length);
CaretPos = Sel.text.length;
}
// Firefox support
else if (ctrl.selectionStart || ctrl.selectionStart == '0')
CaretPos = ctrl.selectionStart;
return (CaretPos);
}
function setCaretPosition(ctrl, pos){
if(ctrl.setSelectionRange)
{
ctrl.focus();
ctrl.setSelectionRange(pos,pos);
}
else if (ctrl.createTextRange) {
var range = ctrl.createTextRange();
range.collapse(true);
range.moveEnd('character', pos);
range.moveStart('character', pos);
range.select();
}
}