Firefoxでテキストエリア内のマウスカーソルが最初に戻ってしまう件

category-icon

 こんばんは。何だか、地球特捜隊ダイバスターGみたいなタイトルになってしまいました。近頃は、もっぱらFirefoxで記事を書いていますが、この際に、ひとつ「何じゃ」と思っていたことがあります。記事作成画面で記事をしこしこ書いていて、時々、文字を強調したり文の整形のために、ppBlogツールバーから選んでタグを反映させますが、その際にFirefoxだと、テキストエリアにフォーカスを合わせると、マウスカーソルがテキストエリアの先頭に移動しちゃうんですよね。なので、その都度、また修正を加えた場所までスクロールさせないといけません。文章が長くなってくると、スクロール量も増えて大変。で、ブロッグは書いてなんぼ、こういう所でストレスを感じさせるようではイケナイ。というわけで、webを検索したらちゃんと便利な属性がありました。ちなみにIEエンジンならマウスカーソルは、修正を加えた箇所にとどまってくれるので問題ないです。

 テキストエリア内で垂直方向にスクロールした距離は、次のプロパティーで読み書き可能です。

object.scrollTop

なので、予め、この値を取得しておき、内容に修正を加えた後で、再度この値に設定すれば良いです。具体的には、ppBlogのlib.jsで言えば、

var s = ed.selectionStart;
var scrollTop = ed.scrollTop;
ed.value = ed.value.slice(0,s)+ed.value.slice(s).replace(caretSelection, string);
ed.setSelectionRange(eval(s+string.length), eval(s+string.length));
ed.scrollTop = scrollTop;
ed.focus();

とすれば良い。ホットピンクの部分が変更した箇所です。これで、Firefoxでもストレスなく記事が書けます。

 余談ですが、Firefoxの最新版は、1.5.0.4で6月2日にバージョンアップしています。最近のFirefoxは、アップデートもほぼ全自動ですし、良い感じですね。最近、見つけたTipsは、「スムーズスクロールを使用する」です。自分がIEエンジンから、なかなかFirefoxに乗り換えることが出来なかった最大要因が、何か皮を一枚被ったような「もっさり」感でした。どことなくスムーズでない。で、よくよく注意してみると、どうもスクロール時のぎこちなさが原因じゃないかと思いました。そういえば、設定項目にスクロールの項目があったような、と、「ツール」→「オプション」→「詳細」→「一般」の「ブラウズ」という項目にありました。デフォルトではオフになってるんですね(自分が以前に弄ったのかも知れないけど)。で、これをオンにすると、マウスホイールでのスクローリングのスムーズなこと!おぉー、これこれ、って感じでした:) 皆さんも一度、試されては■

— posted by martin at 04:21 am   commentComment [1]  pingTrackBack [0]

この記事に対するコメント・トラックバック [1件]

scrollUp1. BENIT Website — 2006/06/03@09:24:45

これ、実は気になってました(笑
わざわざエラー報告するまでもないかな、と思っていたのですが、修正が入ってFirefox使用者としてはうれしい限りです8-)
あと、まったく再現性がないのですが、Firefoxは時々タグが挿入不能になりますね。途中までは普通にタグ挿入ができるのに、いきなりただ一番頭まで戻るだけになったり、その前のタグの中身に挿入しようとタグが置換されたり、といった感じです。
リロードすればなおりますし、Firefoxはリロードしてもテキストエリアの文章が消えないので、さほど問題ではないとは思いますが、一応報告させていただきます。

この記事に対する TrackBack URL:

設定によりTB元のページに、こちらの記事への言及(この記事へのリンク)がなければ、TB受付不可となりますのであらかじめご了承下さい。

コメントをどうぞ。 名前(ペンネーム)と画像認証のひらがな4文字は必須で、ウェブサイトURLはオプションです。

ウェブサイト (U):

タグは使えません。http://・・・ は自動的にリンク表示となります

:) :D 8-) ;-) :P :E :o :( (TT) ):T (--) (++!) ?;w) (-o-) (**!) ;v) f(--; :B l_P~

     
T: Y: ALL: Online:
Created in 0.0172 sec.
prev
2017.7
next
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31