caret@hint
Hit-a-Hint もどきに続き,Caret Hint もどきを作った。
caret@hint · GitHub
javascript:"caret@hint",['http://gist.github.com/230771.txt',function(d){d.body.appendChild(d.createElement('script')).src=this[0]}][1](document)
機能
- ヒントで選んだテキストノードの先頭か末尾にキャレットを移動
- シフトキー同時押しで選択(既存の選択範囲は維持)
- 可能ならキャレットモードに移行
- おまけで複数選択と選択解除
実装
拾うテキストノードの条件は以下の通り。
- 非空白文字を含む
<option>
/<button>
の子孫で無い- :first-child 又は直前要素が空
テキストノードの座標をうまく求める方法が分からず,ヒントは直近の要素に付けている。条件3で要素の決定と重複防止。
蛇足
キャレットモードのままにしておくと色々困るので,autoContentFocus.uc.js に一行加えてタブ移動時に自動解除するようにした。