javascript テキストエリアのカーソル位置を取得する

前回紹介した、RSS Web Editorについて。

ブログには必須といってもいいほど、太字にするとか他いろいろなボタンがついてます。
そいつらはtextareaのカーソル位置、選択箇所を取得しその先頭と後ろに文字を追加することでこの機能を実現してます。

これだけ、一般的に使われてるんだから簡単なんだろうと思ってたんだけど、そうでもなかった。

今回のそれも自作ではなく、いただきものなので、
ここで紹介しておく。
http://painter.homeip.net/~raelian/tag/enclose.html

クロスブラウザ仕様だったのと、設置の方法が丁寧だったのでこいつを選んだ。 他意はない。

さて、設置の方法はページを見てもらえば分かるんだが、
大きく3つある。
1、textarea.jsをリンクする
2、textateaに所定の記述をする。
3、ブラウザ判別用のjavascriptを追加する。

1、2は難なく終わった。
問題は3。こいつ、直接かいてるせいもあり、
textareaの定義より下に書かないとうまく動作しないことがある。
なので、よくわからない人は</body>タグの直前に書いておけば良い。
分かれば簡単なんだが、これでかなり時間をつぶした。
やってはいないが、対処法として、他に
functionにして、onload時に呼び出す
とかすれば良いと思う。

さて、そんなこんなで、実を言うとこのRSS Web Editorでいちばん時間を食ったのがそこなのだ。他の全てより時間がかかった。

それはそうと、最近Ajaxの流れもあり、javascriptを書く機会が増えてきた。デザイナもjavascriptを知らないとつらい時代になってきたのかもしれない。 私はどうも型付けの弱い言語はニガテだ。
なぜって? 型が分からんくなることがあるし、覚えてられないのだ。その点JavaとかC#なんてのは大好き。
Rubyは一時期触っていたが、やめてしまった。(railsがこんなにはやっているっていうのにね。)
折を見てまた勉強しようとおもう。