Custom gesture [jp] - utubo/firefox-simple_gesture GitHub Wiki

カスタムジェスチャ

Javascriptの例

ここ(./Custom-gesture-examples-[jp])

API

SimpleGestureが用意したAPIを利用して、いくつか特殊な操作を行えます。

タブ関係の覚書

入力した文字列をgoogleで検索する

/**
 * @name ググる
 */
const q = prompt();
/* 最後に評価された式の結果に「url」というプロパティがある場合、
   新しいタブでそのURLを開きます。 */
const newTab = q ? { url: ('https://www.google.com/search?q=' + encodeURIComponent(q)) } : null;
newTab;

リンクをバックグラウンドで開く

/**
 * @name バックグラウンドで開く
 */
/* 「SimpleGesture.target」でジェスチャの起点の要素を取得できます。 */
let target = SimpleGesture.target;
while (target && !target.href) {
  target = target.parentNode; /* 親がAタグかもしれないので探す */
}
/* 「active: false」を指定すると、バックグラウンドで開きます。 */
const newTab = target ? { url: target.href, active: false } : null;
newTab;

URLを確認してから現在のタブで開く

/**
 * @name リンクのURLを確認
 */
for (let target = SimpleGesture.target; !!target; target = target.parentNode) {
  if (target.href) {
    if (confirm('このURLを開きますか?\n' + target.href)) {
      /* 現在のタブで開くならコレでOK! */
      location.href = target.href;
    }
    break;
  }
}

その他の小技

タブを閉じる

window.close();の代わりに次のコードでタブを閉じることができます。

browser.runtime.sendMessage('close');