js 光标位置处理

时间:2024-07-26 11:36:08
  /**
* 获取选中文字
* 返回selection,toString可拿到结果,selection含有起始光标位置信息等
**/
function getSelectText() {
var text,
userSelection = window.getSelection()||document.selection.createRange();// not IE || ie
if (!(text = userSelection.text)) text = userSelection; return text;
}
/**
* 获取光标位置
* 对 input、textarea有效,对contenteditable:true方式不生效
**/
function getCursortPosition (textDom) {
var cursorPos = 0;
if (document.selection) {
// IE Support
textDom.focus ();
var selectRange = document.selection.createRange();
selectRange.moveStart ('character', -textDom.value.length);
cursorPos = selectRange.text.length;
}else if (textDom.selectionStart || textDom.selectionStart == '0') {
// 非 IE
cursorPos = textDom.selectionStart;
}
return cursorPos;
}
/**
* 设置光标位置
* 有效对象同光标获取
**/
function setCaretPosition(textDom, pos){
if(textDom.setSelectionRange) {
// IE Support
textDom.focus();
textDom.setSelectionRange(pos, pos);
}else if (textDom.createTextRange) {
// 非 IE
var range = textDom.createTextRange();
range.collapse(true);
range.moveEnd('character', pos);
range.moveStart('character', pos);
range.select();
}
}