首页 > 编程 > JavaScript > 正文

javascript获取以及设置光标位置

2019-11-19 17:33:09
字体:
来源:转载
供稿:网友

一. 获取光标位置:

// 获取光标位置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') {  // Firefox support  cursorPos = textDom.selectionStart; } return cursorPos;}

二. 设置光标位置:

// 设置光标位置function setCaretPosition(textDom, pos){ if(textDom.setSelectionRange) {  // IE Support  textDom.focus();  textDom.setSelectionRange(pos, pos); }else if (textDom.createTextRange) {  // Firefox support  var range = textDom.createTextRange();  range.collapse(true);  range.moveEnd('character', pos);  range.moveStart('character', pos);  range.select(); }}

三. 获取选中文字:

// 获取选中文字function getSelectText() { var userSelection, text; if (window.getSelection) {  // Firefox support  userSelection = window.getSelection(); } else if (document.selection) {  // IE Support  userSelection = document.selection.createRange(); } if (!(text = userSelection.text)) {  text = userSelection; } return text;}

四. 选中特定范围的文本:

/*** 选中特定范围的文本* 参数:*  textDom [JavaScript DOM String] 当前对象*  startPos [Int] 起始位置*  endPos [Int] 终点位置*/function setSelectText(textDom, startPos, endPos) { var startPos = parseInt(startPos),  endPos = parseInt(endPos),  textLength = textDom.value.length; if(textLength){  if(!startPos){   startPos = 0;  }  if(!endPos){   endPos = textLength;  }  if(startPos > textLength){   startPos = textLength;  }  if(endPos > textLength){   endPos = textLength;  }  if(startPos < 0){   startPos = textLength + startPos;  }  if(endPos < 0){   endPos = textLength + endPos;  }  if(textDom.createTextRange){   // IE Support   var range = textDom.createTextRange();   range.moveStart("character",-textLength);   range.moveEnd("character",-textLength);   range.moveStart("character", startPos);   range.moveEnd("character",endPos);   range.select();  }else{   // Firefox support   textDom.setSelectionRange(startPos, endPos);   textDom.focus();  } }}

五. 在光标后插入文本:

/*** 在光标后插入文本* 参数:*  textDom [JavaScript DOM String] 当前对象*  value [String] 要插入的文本*/function insertAfterText(textDom, value) { var selectRange; if (document.selection) {  // IE Support  textDom.focus();  selectRange = document.selection.createRange();  selectRange.text = value;  textDom.focus(); }else if (textDom.selectionStart || textDom.selectionStart == '0') {  // Firefox support  var startPos = textDom.selectionStart;  var endPos = textDom.selectionEnd;  var scrollTop = textDom.scrollTop;  textDom.value = textDom.value.substring(0, startPos) + value + textDom.value.substring(endPos, textDom.value.length);  textDom.focus();  textDom.selectionStart = startPos + value.length;  textDom.selectionEnd = startPos + value.length;  textDom.scrollTop = scrollTop; } else {  textDom.value += value;  textDom.focus(); }}

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持武林网!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表