Hatena::ブログ(Diary)

mooz deceives you

(about 'mooz) ; => "See http://mooz.github.com/index-ja.html"

 | 

January 16 (Sat), 2010

コンテンツへフォーカス (テキストエリアから抜ける) コマンド Firefox 3.6 対応版

Firefox を 3.6 にあげたら、下記のコンテンツへフォーカスするコマンドが効かなくなってしまった。

どうも調べて見たところ、次のような動作となっている様子。

  1. 現在フォーカスがコンテンツ外 (ロケーションバーなど) にある
    • この場合はこれまで同様にコンテンツへフォーカスがあたる
  2. 現在フォーカスがコンテンツの「テキストボックス」にある
    • この場合、これまでのようにテキストボックスから抜けることができない

これはつまり「コンテンツ内の要素にフォーカスが当たっていた場合、そこから blur したことになってくれない」というものだったので、次のようなコマンドへと変更してしのぐことにした。

key.setGlobalKey(['C-c', 'b'], function (ev, arg) {
    let elem = document.commandDispatcher.focusedElement;
    if (elem) elem.blur();

    gBrowser.focus();
    _content.focus();
}, 'コンテンツにフォーカス', true);

同様にして C-g へのフックも修正。

この gBrowser.focus(); _content.focus() という組み合わせは至る所で使われているので (元ネタはどなたかの keyconfig 用設定だし)、「テキストボックスから抜ける」目的で使用していた人は参考までにどうぞ。

トラックバック - http://d.hatena.ne.jp/mooz/20100116/p2
 | 
Connection: close