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 ++;
}
}
}