« JSONとContent-Type | メイン | Safari 2.0.3 supports setSelectionRange »

Safari 2.0.3でtextbox中のキャレットの位置の処理が変わった?

昨日のMacのアップデートでSafariが2.0.3(もしくは1.3.2)になったわけだが、ちょっと気になった点が。

<input type="text" name="textfield" onfocus="this.value=this.value+'foo'"/>

というtextboxを作って、textboxをクリックすると、textboxに「foo」と入ります。
一度フォーカスを外して再度クリックすると「foofoo」になると思います。繰り返すと「foo」が増えていきます。

このときのキャレット(文字入力ポインタ)の位置が、firefoxやいままでのSafariなら、必ず最後に来ていたのですが、Safari 2.0.3(1.3.2)だと、Textbox上のクリックしたあたりにキャレットがつきます。

これ、何が問題なのかというと、「Tag入力Suggestテスト」のエントリで書いた調整中の
FemoのTag Suggest Test (http://autocomptest.nomadscafe.jp/)
でTagを候補の中から決定したときにキャレット位置が最後にいかないところにあります。
これでは、次のTagを入力しようとするときに、キャレットを矢印キーやマウスで動かさないとだめです。
う〜ん、不便。

OperaもこのSafariと同じ仕様ぽい。


追記:
del.icio.usのsuggestがうまく動くのでしらべると、どうもSafariでもsetSelectionRangeがうまく動くようだ。

if (this.tagText.setSelectionRange){
    //this.tagTextはtextboxエレメント
    this.tagText.setSelectionRange(this.tagText.value.length,this.tagText.value.length);
}

でキャレットを最後に持っていける。