js 光标位置处理

  /**
* 获取选中文字
* 返回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(); } }

 

posted @ 2017-10-13 10:59  【云】风过无痕  阅读(245)  评论(0编辑  收藏  举报