ぺんちゃん日記

食と歴史と IT と。 Web の旅人ぺんじろうが好奇心赴くままに彷徨います 。

Firefox で URL を取得してタブ選択する【AutoHotkey】

f:id:yasushiito:20190403184928p:plain

Firefox でもやりたいよ。

ブラウザで表示しているページの URL をAutoHotkeyから取得して、 URL を手がかりに操作したいタブを検出したいです。
Chromeについては既に成功しています
Firefox でも実現したいと思います。

おさらい。

autohotkey スクリプトで手軽に URL を取得するにはクリップボードから転送するのが良いのでした。
URL をクリップボードに転送する方法は、 Chrome 拡張を使うか URL バーを参照するかのどちらかでした。
私が探した chrome 拡張ではキーボードショートカットから URL コピーすることができなかったので、 URL バーから取得したのでした。
その際に URL バーからウェブページにフォーカスを戻すのに苦労したのでした。

Firefoxアドオンを調べる。

URL をコピーしてくれるアドオンを探してみました。
copytabtitleurlです。

addons.mozilla.org

このアドオンは ALT + C で URL をクリップボードにコピーしてくれます。
defaultではタイトルを加味したMarkDown形式でコピーします。
今回は URL だけあれば良いので設定を変更します。
フォーマットだけは${url}に変更しておきます。

f:id:yasushiito:20190524183837p:plain

幸運なことにアドオンを実行しても入力フォーカスに変化はありません。
作業中の入力フィールドをアクティブにしたまま URL をゲットできます。
ここまでいけば完成したも同然ですね。

作ってみる。

こんな感じになると思います。

  1. キーボードショートカット ALT + Cを送信して URL をクリップボードに取得する。
  2. URL が期待したページであるのか判定する。
  3. 期待したものでなければキーボードショートカット Ctrl + tab で次のタブに移る。
  4. 最初のステップに戻る。

ただし、タブ選択は色んなシーンで必要となりますので、ブラウザの種類を意識せず呼び出せるようにしたいです。
ChromeFirefox では URL を取得する手順が違いますから、ブラウザを判定します。

出来上がったコードはこんな感じです。

ブラウザを判定したら、それに相応しい URL 取得関数を呼び出します。

テストプログラムはこちら。


ところで Firefox のタブ選択ショートカットは Ctrl + ページアップです。
Ctrl + tab でもタブ選択できますが、最近使ったタブの順番で選択します。
もし一度も選択されてないタブがあるなら、そのタブが選択されません。
ただしこれはFirefox のオプションチェックされている場合です。
次の画像参考にしてみてください。

f:id:yasushiito:20190526151349p:plain