javascript学习指南|javascript获取以及设置光标位置

时间:2021-06-21  来源:Dom教程  阅读:

一. 获取光标位置:

 

 代码如下

// 获取光标位置

functiongetCursortPosition (textDom) {

 varcursorPos = 0;

 if(document.selection) {

  // IE Support

  textDom.focus ();

  varselectRange = document.selection.createRange();

  selectRange.moveStart ('character', -textDom.value.length);

  cursorPos = selectRange.text.length;

 }elseif(textDom.selectionStart || textDom.selectionStart ==Ɔ') {

  // Firefox support

  cursorPos = textDom.selectionStart;

 }

 returncursorPos;

}

 

二. 设置光标位置:

 

 代码如下

// 设置光标位置

functionsetCaretPosition(textDom, pos){

 if(textDom.setSelectionRange) {

  // IE Support

  textDom.focus();

  textDom.setSelectionRange(pos, pos);

 }elseif(textDom.createTextRange) {

  // Firefox support

  varrange = textDom.createTextRange();

  range.collapse(true);

  range.moveEnd('character', pos);

  range.moveStart('character', pos);

  range.select();

 }

}

 

三. 获取选中文字:

 

 代码如下

// 获取选中文字

functiongetSelectText() {

 varuserSelection, text;

 if(window.getSelection) {

  // Firefox support

  userSelection = window.getSelection();

 }elseif(document.selection) {

  // IE Support

  userSelection = document.selection.createRange();

 }

 if(!(text = userSelection.text)) {

  text = userSelection;

 }

 returntext;

}

 

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

 

 代码如下

/**

* 选中特定范围的文本

* 参数:

*  textDom [JavaScript DOM String] 当前对象

*  startPos [Int] 起始位置

*  endPos [Int] 终点位置

*/

functionsetSelectText(textDom, startPos, endPos) {

 varstartPos = 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

   varrange = 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] 要插入的文本

*/

functioninsertAfterText(textDom, value) {

 varselectRange;

 if(document.selection) {

  // IE Support

  textDom.focus();

  selectRange = document.selection.createRange();

  selectRange.text = value;

  textDom.focus();

 }elseif(textDom.selectionStart || textDom.selectionStart ==Ɔ') {

  // Firefox support

  varstartPos = textDom.selectionStart;

  varendPos = textDom.selectionEnd;

  varscrollTop = 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();

 }

}

 

javascript学习指南|javascript获取以及设置光标位置

http://m.bbyears.com/wangyezhizuo/125198.html

推荐访问:
相关阅读 猜你喜欢
本类排行 本类最新