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