8th713 Log

テキスト
2009年 10月28日.

OneKeyAction.user.js

Sleipnir スキン・プラグインスレッド 13th レス170より
http://pc12.2ch.net/test/read.cgi/win/1254580267/170

170 名前:名無し~3.EXE[sage] 投稿日:2009/10/28(水) 15:27:58 ID:XcohTPqX
「ウィンドウを閉じる」や「予め設定したwebサイト(例えばホームページ)に移動」
「履歴の戻る」「進む」(他にも「リロード」など)の機能をキーに割り当てて
使えるようなSeaHorseスクリプトを探しています。


ビューにフォーカスがあるとき、Bを押せば戻る、Fで進む、Cで閉じるといった
使い方を考えているんですが、何かいい方法はありませんか?

とのことなのでやっつけで作ってみた。

OneKeyAction.user.js
http://gist.github.com/220347

  • keyConfig の部分に追記することで既定のアクションをシングルキーに割り当てられます。
  • メインビューにフォーカスがあって且 input,textarea 以外にフォーカスがあるときキーアップするとアクション
  • Shift,Ctrl,Altが押されているとアクションは無視されます(Ctrl+C とかの時誤爆しないため)。

カスタマイズ

はじめのほうにある keyConfig オブジェクトを書き換えてあげればいいです

keyConfig は 「keyCode : Action or URL」で一対です。

keyCode は ここ で調べられます。

Action は http|ftp|file ではじまる場合 sleipnir.api.URL の設定値 それ以外の場合は sleipnir.api.ExecuteAction の引数です。

存在しないアクション名を渡すと未定義のエラーがでると思います。

デフォで b:戻る,f:進む,c:閉じる,s:SleipnirStartを開く が割り当たっています。

でもマルチスレッドオンだと 閉じるが2回実行されるバグがあるみたい。

追記

これってブックマークレット使用できるようになりませんか?

ってことなので 40 行目 の

  • if(/^http|ftp|file$/.test(keyConfig[e.keyCode]))

を

  • if(/:/.test(keyConfig[e.keyCode]))

に直したほうがいいかも。
こうすれば「:」が含まれる文字列はすべて URL と判定できる。
「:」が含まれるアクションは多分ないから大丈夫じゃないかと思います。

追記その2

メモリリークしてたかもしれないので対策らしきものを加えたりしてみました。
効果はわからないけども・・・

上のブックマークレット対応も反映してあります。

追記その3

追加方法が分からない人向けにもうちょい説明。
とりあえず

  • R キーに「更新」を割り当てる。
  • T キーに Twitter を開く機能を割り当てる。

で説明。

  1. keyCode を調べよう。上で紹介しているサイトが簡単。テキストエリアにフォーカスして調べたいキーをおせば上のインプットボックスに数字が出る。それがそのキーの keyCode なので覚えておく。ちなみに R は 82, T は 84。
  2. 割り当てたいアクションの名前を調べよう。Sagittarius とかオプションのメニューエディタとかで使うやつね。wiki に一覧があるけど古い。自分のマシンで使えるアクションを一覧で欲しい場合は先述の方法が簡単じゃないですか。ちゃんと調べられてれば「更新」は Refresh という名前だとわかる。URL は開きたい URL を指定するだけだからわかるでしょう。
  3. 上の手順までちゃんとできてればあとはそれを書き込むだけ。

こんな感じにかけていればいいでしょう。うまくかけてなかったらアウトプットドックにエラーメッセージがでるかもしれません。

あんまり分かりやすい説明じゃないですね。

タグ: Sleipnir
1
Notes
  1. 958がこの投稿を「スキ!」と言っています
  2. 8th713の投稿です
前へ 次へ

Links

  • twitter
  • jsdo.it
  • 8th_713lab