网络编程
位置:首页>> 网络编程>> JavaScript>> JavaScript让Textarea支持tab按键的方法

JavaScript让Textarea支持tab按键的方法

作者:不吃皮蛋  发布时间:2024-05-05 09:15:00 

标签:JavaScript,Textarea,tab

本文实例讲述了JavaScript让Textarea支持tab按键的方法。分享给大家供大家参考。具体实现方法如下:


HTMLTextAreaElement.prototype.getCaretPosition = function () {
//return the caret position of the textarea
return this.selectionStart;
};
HTMLTextAreaElement.prototype.setCaretPosition = function (position) {
//change the caret position of the textarea
this.selectionStart = position;
this.selectionEnd = position;
this.focus();
};
HTMLTextAreaElement.prototype.hasSelection = function () {
//if the textarea has selection then return true
if (this.selectionStart == this.selectionEnd) {
 return false;
} else {
 return true;
}
};
HTMLTextAreaElement.prototype.getSelectedText = function () {
//return the selection text
return this.value.substring(this.selectionStart, this.selectionEnd);
};
HTMLTextAreaElement.prototype.setSelection = function (start, end) {
//change the selection area of the textarea
this.selectionStart = start;
this.selectionEnd = end;
this.focus();
};
var textarea = document.getElementsByTagName('textarea')[0];
textarea.onkeydown = function(event) {
//support tab on textarea
if (event.keyCode == 9) { //tab was pressed
 var newCaretPosition;
 newCaretPosition = textarea.getCaretPosition() + " ".length;
 textarea.value = textarea.value.substring(0, textarea.getCaretPosition()) + " " + textarea.value.substring(textarea.getCaretPosition(), textarea.value.length);
 textarea.setCaretPosition(newCaretPosition);
 return false;
}
if(event.keyCode == 8){
//backspace
 if (textarea.value.substring(textarea.getCaretPosition() - 4, textarea.getCaretPosition()) == " ") {
 //it's a tab space
  var newCaretPosition;
  newCaretPosition = textarea.getCaretPosition() - 3;
  textarea.value = textarea.value.substring(0, textarea.getCaretPosition() - 3) + textarea.value.substring(textarea.getCaretPosition(), textarea.value.length);
  textarea.setCaretPosition(newCaretPosition);
 }
}
if(event.keyCode == 37){ //left arrow
 var newCaretPosition;
 if (textarea.value.substring(textarea.getCaretPosition() - 4, textarea.getCaretPosition()) == " ") {
 //it's a tab space
  newCaretPosition = textarea.getCaretPosition() - 3;
  textarea.setCaretPosition(newCaretPosition);
 }
}
if(event.keyCode == 39){
//right arrow
 var newCaretPosition;
 if (textarea.value.substring(textarea.getCaretPosition() + 4, textarea.getCaretPosition()) == " ") {
 //it's a tab space
  newCaretPosition = textarea.getCaretPosition() + 3;
  textarea.setCaretPosition(newCaretPosition);
 }
}
}

希望本文所述对大家的javascript程序设计有所帮助。

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com