プロが教えるわが家の防犯対策術!

対象ブラウザはGoogle Chromeです(IEでは解決済み)
textareaのボックス内で、現在キャレットが位置する行インデックスを
取得したいのですが、どうすればよいでしょうか。

最終的にやりたいのはオートインデントです。
textarea内でEnterキーを押した時に、その行の先頭のスペースの数を調べて
次の行の先頭に同じ数のスペースを自動で挿入します。
このため、Enterキーを押した瞬間の行インデックスを取得する必要があります。
その後の処理であるスペースの挿入は方法が分かっているので問題ありません。

よろしくお願い致します。

A 回答 (1件)

http://www.openspc2.org/reibun/javascript/

ここのサイトを紹介しておきます。
Chromで動くかどうかは分かりませんが
欲しいものが見つかるかも?
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
残念ながら参考になりそうなサンプルはありませんでしたが、
自己解決しましたので、コードをここに載せておきます。

var textAreaElement = document.getElementById("TxtHoge");
// 一時的にテキスト選択範囲の始点をtextareaの先頭にして、
// 現在のキャレット位置までの文字列を取得し、改行コードで分割する
textAreaElement.selectionStart = 0;
var sel = document.getSelection() + "";
textAreaElement.selectionStart = textAreaElement.selectionEnd;
var lines = sel.split("\n");
var curLineText = lines[lines.length - 1];

お礼日時:2011/06/30 19:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!