2009-05-12 18 views
5

私はweb-appでファイル編集インターフェースを作っています。ファイル内容のテキストエリアがあります。テキストエリアの現在の行と列番号を表示

テキストエリアにフォーカスがあるときに、カーソルの位置、つまり行番号と列を出力します。これは、エラーメッセージが通常行番号を生成するために便利です。

質問は、どのように私はテキストエリア内のカーソルの位置を把握するのですか? 私はプロトタイプライブラリを使用しています。多分すでに解決策がありますか?

私は、これらの高度なウィジェットによって提供されるテキストエリア用の素晴らしいツールバーには本当に興味がありません。

答えて

6

あなたはこれらの2つのリンクをチェックアウトすることもできます。

http://www.dedestruct.com/2008/03/22/howto-cross-browser-cursor-position-in-textareas/[orginalソースはもはや存在しませんが、Webアーカイブの最新バージョンに変更されたリンクポイント]

https://developer.mozilla.org/En/DOM:Selection

..あなたは選択肢(テキストのカーソルインデックス)を持っているので、改行でテキストを分割して行番号を取得することができます。おかげで、私はそれを試してみましょう

<textarea onkeyup="getLineNumberAndColumnIndex(this);" onmouseup="this.onkeyup();" > 
</textarea> 

function getLineNumberAndColumnIndex(textarea){ 
    var textLines = textarea.value.substr(0, textarea.selectionStart).split("\n"); 
    var currentLineNumber = textLines.length; 
    var currentColumnIndex = textLines[textLines.length-1].length; 
    console.log("Current Line Number "+ currentLineNumber+" Current Column Index "+currentColumnIndex); 
    } 
+0

:私はテキストエリアとテキストエリアの現在の列の現在の行番号をしたい場合は、私はこのような解決

alamar

+3

FYI:dedestruct.comのリンクが2011年4月11日に死んでいます。 – drudge

+0

Webアーカイブを使用してリンクが壊れていた問題を解決しました:http://web.archive.org/web/20090221140237/http://www.dedestruct.com/ 2008/03/22/howto-cross-browser-cursor-position-in-textareas / –

0
行の先頭からインデックスを決定することによって、列を取得することができます。
関連する問題