※ ChatGPTを利用し、要約された質問です(原文:IEで,テキストエリアの選択範囲を設定する方法)
IEで,テキストエリアの選択範囲を設定する方法
このQ&Aのポイント
javascriptでテキストエリアの選択範囲を設定したく、http://d.hatena.ne.jp/language_and_engineering/20090225/p1を参考に試験しましたが、正しく選択範囲が設定されません。どこが悪いのでしょうか?
正しく選択範囲が設定されるサンプルがあれば、ご教示いただければありがたいです。
IEでテキストエリアの選択範囲を設定する方法について詳しく教えてください。
IEで,テキストエリアの選択範囲を設定する方法
お世話になります。
javascriptでテキストエリアの選択範囲を設定したく、
http://d.hatena.ne.jp/language_and_engineering/20090225/p1
を参考に以下のようなhtmlを試験したのですが、正しく選択範囲が設定されません。
コーディングはShift_JIS、改行はCRLFです。
どこが悪いのでしょうか?
正しく選択範囲が設定されるサンプルがあれば、ご教示いただければありがたいです
よろしくお願いします。
<html>
<textarea id="my_input" cols=50 rows=10>
あいうえおかきこけこ
さしすせそたちつてと
なににねのはひふへほ
</textarea>
<input type="button" onclick="f()" value="選択">
<script language="JavaScript">
function f()
{
var elem = document.getElementById( "my_input" );
setSelectionIE( elem, 5, 15 ); //かきくけこさしすせそ が選択されない
}
// 要素内の文字列を選択状態にする関数
// start, end : 選択したい文字列の開始地点と終了地点。(先頭からの文字数)
function setSelectionIE( elem, start, end )
{
// 終了地点を,末尾から数えた負の文字数に変換
var end_new = - ( elem.value.length - end );
// 範囲生成
var range = elem.createTextRange();
range.moveStart( "character", start ); // 先頭から数えた開始地点
range.moveEnd( "character", end_new ); // 末尾から数えた開始地点
// 選択
range.select();
}
</script>
</html>
お礼
いろいろ調べましたが、以下のツールで処理するのが手っ取り早いようです http://plugins.jquery.com/project/a-tools
補足
ご検討ありがとうございます。 ANo.1の自動改行削除バージョンですね。 しかしこの方法はtextareaの内容が書き換えられます。 当方の質問が説明不足であったかもしれません。 質問の趣旨は「(日本語)の文字位置」で選択したいのではなく、start,endをいわばポインタ的に指定して、textareaの内容を保持したまま、 「 かきくけこ さしすせそ」 を改行付きで選択したいということで、そのためには setSelection(elem,5,17); にすべきでした。 この目的は http://www.teria.com/~koseki/memo/xbselection/example.html のget selectionとペアにして、textareaに簡単な自動編集機能を付与することです。 ではまたよろしくお願いします。