45fan.com - 路饭网

搜索: 您的位置主页 > 电脑频道 > 编程代码 > 阅读资讯:JavaScript如何让Textarea支持tab键?

JavaScript如何让Textarea支持tab键?

2015-07-21 14:43:06 来源:www.45fan.com 【

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程序设计有所帮助。


本文地址:http://www.45fan.com/bcdm/15217.html
Tags: JavaScript 支持 textarea
编辑:路饭网
推广内容
推荐阅读
热门推荐
推荐文章
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部