プラグインからフォーカスを外す
93149 - [meta] No way to move focus between plugin and browser from keyboard を MozRepl 経由で外部から。
↑こんな感じのスクリプトを書いて「ショートカットを作成」し,実行時の大きさを「最小化」にして適当なキーを割り当てるだけ。
単に minimize();restore()
を送りつけると若干ちらつくのが嫌で WshShell.AppActivate()
を使ってみたが,--no-remote
で複数起動中に破綻するのであまりよろしくない。Firefox に自身の pid 吐かせる方法無いかな。*1
予め--no-remoteで起動するFirefoxのプロファイルではタイトル文字列をabout:configからnightly.templates.titleで改造しておいて、タイトル文字列でAppActivateとかでいけないですかね?
http://subtech.g.hatena.ne.jp/h2u/20091006/1254769685
文字コードまわりが不安で title
にはあえて触れなかったのでした。さっき試したら案の定動かず…。
$mr->cmd('repl.print(document.title)'); my $title = $mr->getline; $title =~ s/^\s+|\s+$//; Win32::OLE->new('WScript.Shell')->AppActivate($title);
↑失敗したコード。
完全一致である必要は無いので、これでちゃんと前面に移動してくれた。
お膳立てがこれ以上増えるのは避けたくタイトル変更云々はスルーしてたけど,なるほど部分一致させることは考えてなかった。
でも「Mozilla Firefox」だと一般的すぎるので*2普段使う側に充分ユニークなタイトルを設定しないとダメそう。
*1:09-11-14: js-ctypes で実現。確実に前に出せるようになったが今度はフォーカスがうまくいかない。Fx3.6b で何か変わったらしい
*2:Google を開いてる Google Chrome に誤爆したりとか