IEの下でjavascriptはtextareaカーソルの開始位置を取得します.

1716 ワード

プロジェクト開発では、指定された位置にテキストを挿入しやすいように、textareaカーソルの開始位置と終了位置を計算する必要があります.次のコードテストにより、カーソルの開始位置と終了位置が得られます.var=document.selection.reat Range()、start=0、end=0;
					if(er.parentElement().id === this.id){
						// create a selection of the whole textarea
						var er1 = document.body.createTextRange();
						er1.moveToElementText(this);
						//  range,        text(er),     textarea(er1)
						//er1.compareEndPoints()      ,  er1 er   (further to the left),  //    0  , er1     ,    er start  。
						// calculate selection start point by moving beginning of er1 to beginning of er
						for (start = 0;er1.compareEndPoints('StartToStart',er) < 0;start++){
							er1.moveStart('character', 1);
						}
						// get number of line breaks from textarea start to selection start and add them to start
						//     
for (var i = 0; i <= start;i++){ if (this.value.charAt(i) == '
'){ start++; } } // create a selection of the whole textarea var er1 = document.body.createTextRange(); er1.moveToElementText(this); // calculate selection end point by moving beginning of er1 to end of er for (end = 0;er1.compareEndPoints('StartToEnd',er) < 0;end++){ er1.moveStart('character',1); } // get number of line breaks from textarea start to selection end and add them to end for (var i = 0;i <= end;i++){ if (this.value.charAt(i) == '
'){ end ++; } } }