Hatena::Groupkeysnail

basyura snail

 | 

2010-07-27

カーソル移動とページ内検索

| 23:25 |  カーソル移動とページ内検索 - basyura snail を含むブックマーク はてなブックマーク -  カーソル移動とページ内検索 - basyura snail

テキストエリア内のカーソル移動と、ページ内検索で割り当てたいキーが被るのでどうしようかと試行錯誤。検索バーの存在を確認して処理を切り替えればいいことに気がついた(遅い)。

  • gFindBar が表示されていれば検索中とみなしてテキストエリア内で検索を行う。
  • gFindBar が表示されていなければ編集中とみなしてテキストエリア内でカーソル移動を行う。

アドレスバーで C-n C-p を使って選択することもできる♪

key.setGlobalKey('C-f', function (ev) {
    getBrowser().mTabContainer.advanceSelectedTab(1, true);
}, 'ひとつ右のタブへ');

key.setGlobalKey('C-b', function () {
    getBrowser().mTabContainer.advanceSelectedTab(-1, true);
	ev.cancelBubble = true;
}, 'ひとつ左のタブへ');

key.setEditKey('C-f', function (aEvent) {
    key.generateKey(aEvent.originalTarget, KeyEvent.DOM_VK_RIGHT, true);
}, '右');

key.setEditKey('C-b', function (aEvent) {
    key.generateKey(aEvent.originalTarget, KeyEvent.DOM_VK_LEFT, true);
}, '左');

key.setEditKey('C-p', function (aEvent) {
   if(!command.gFindBar.hidden) {
        command.iSearchBackward();
        return;
    }
    key.generateKey(aEvent.originalTarget, KeyEvent.DOM_VK_UP, true);
}, '上');

key.setEditKey('C-n', function (aEvent) {
    if(!command.gFindBar.hidden) {
        command.iSearchForward();
        return;
    }
    key.generateKey(aEvent.originalTarget, KeyEvent.DOM_VK_DOWN, true);
}, '下');

key.setGlobalKey('C-n', function () {
    command.iSearchForward();
}, 'インクリメンタル検索', true);

key.setGlobalKey('C-p', function () {
    command.iSearchBackward();
}, '逆方向インクリメンタル検索', true);
トラックバック - http://keysnail.g.hatena.ne.jp/basyura/20100727
 |