livedoorReaderの「新着のみ表示」ボタンとAutopagerizeのon/offをキーボードで切り替える

livedoorReaderを使っていると、たまにフィードの取得に失敗することがある。
そのときは、rキーを押すかF5を押してフィードの再取得をすることになるが、新着のみ表示にしていると、目的のフィードはすでに読んだことになってしまっているので、表示されない。


そこで、いちいちマウスでボタンを押して切り替えるのだけど、ほとんどの操作がキーボードでできるだけに、余計に気になってしまう。昨日のGmailと同じ。


で、今日、同じようにフィードを再取得するハメになってしまったので、キーボードのみで切り替えられるようにした。


KeyConfigを使って切り替えを行う。
Keyconfigから新しいキーを追加し、以下のように書く。

var doc = window.getBrowser().contentDocument;
var elements = doc.getElementById('show_all_button');
var event = doc.createEvent('MouseEvents');
  event.initEvent('click',true,true);
  elements.dispatchEvent(event);

後はこれを動作させるキーを自分の好きなものに設定すれば、キーボードで切り替えができるようになる。
フィードの取得に失敗した場合以外にも、フィードの検索をするときも表示されていないフィードは検索できないので、切り替えが必要になる。

AutoPagerizeの切り替え

同様に、というかこっちの方は前から利用していたのだが、AutoPagerizeもキーボードでon/offの切り替えができる。

var doc = window.getBrowser().contentDocument;
var elements = doc.evaluate('id("autopagerize_help")/div/a[contains(@class,"autopagerize_link")]',doc,null,7,null);
if(elements.snapshotLength){
    var event = doc.createEvent('MouseEvents');
    event.initEvent('click',true,true);
    elements.snapshotItem(0).dispatchEvent(event);
}

ちなみにtoggleAutopagerizeという名前を付け、Shift+Pを切り替えキーとしている。
livedoorReaderの方は、Alt+N