JavaScript让Textarea支持tab按键的方法
本文实例讲述了JavaScript让Textarea支持tab按键的方法。分享给大家供大家参考。具体实现方法如下:
HTMLTextAreaElement.prototype.getCaretPosition=function(){
//returnthecaretpositionofthetextarea
returnthis.selectionStart;
};
HTMLTextAreaElement.prototype.setCaretPosition=function(position){
//changethecaretpositionofthetextarea
this.selectionStart=position;
this.selectionEnd=position;
this.focus();
};
HTMLTextAreaElement.prototype.hasSelection=function(){
//ifthetextareahasselectionthenreturntrue
if(this.selectionStart==this.selectionEnd){
returnfalse;
}else{
returntrue;
}
};
HTMLTextAreaElement.prototype.getSelectedText=function(){
//returntheselectiontext
returnthis.value.substring(this.selectionStart,this.selectionEnd);
};
HTMLTextAreaElement.prototype.setSelection=function(start,end){
//changetheselectionareaofthetextarea
this.selectionStart=start;
this.selectionEnd=end;
this.focus();
};
vartextarea=document.getElementsByTagName('textarea')[0];
textarea.onkeydown=function(event){
//supporttabontextarea
if(event.keyCode==9){//tabwaspressed
varnewCaretPosition;
newCaretPosition=textarea.getCaretPosition()+"".length;
textarea.value=textarea.value.substring(0,textarea.getCaretPosition())+""+textarea.value.substring(textarea.getCaretPosition(),textarea.value.length);
textarea.setCaretPosition(newCaretPosition);
returnfalse;
}
if(event.keyCode==8){
//backspace
if(textarea.value.substring(textarea.getCaretPosition()-4,textarea.getCaretPosition())==""){
//it'satabspace
varnewCaretPosition;
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){//leftarrow
varnewCaretPosition;
if(textarea.value.substring(textarea.getCaretPosition()-4,textarea.getCaretPosition())==""){
//it'satabspace
newCaretPosition=textarea.getCaretPosition()-3;
textarea.setCaretPosition(newCaretPosition);
}
}
if(event.keyCode==39){
//rightarrow
varnewCaretPosition;
if(textarea.value.substring(textarea.getCaretPosition()+4,textarea.getCaretPosition())==""){
//it'satabspace
newCaretPosition=textarea.getCaretPosition()+3;
textarea.setCaretPosition(newCaretPosition);
}
}
}
希望本文所述对大家的javascript程序设计有所帮助。