AutoPagerize をキーボードで on/off 切り替え可能にする Greasemonkey スクリプト

Wassr で「Autopagerize をショートカットキーでトグルする方法ないかなー」的なことを書いてる方がいて、確かにフッターメニューに用がある時とかに、いちいち右上の AutoPagerize メニューをクリックするのは面倒だなー、と思って作ってみました。

インストールする

こちらからどうぞ。
http://userscripts.org/scripts/show/55178

使い方

A で on/off の切り替えができます!

ソース

そんなに大した量でもないのでソースも載せておきます。A が気に入らなければ、キーコードを変えて、お好きなキーでどうぞ。

// ==UserScript==
// @name           AutoPagerize Switcher
// @namespace      http://www.ohaco.jp/
// @description    AutoPagerize をキーボードで on/off 切り替え可能にする Greasemonkey スクリプト。
// @include        http://*
// ==/UserScript==

(function() {
  if(window.AutoPagerize) {
    var key = 65; // a

    function toggle(event) {
      if(event.keyCode == key) {
        var e = document.createEvent('MouseEvents');
        e.initEvent('click', true, false);

        var autopagerizeLink = document.evaluate('id("autopagerize_help")/div/a[@class="autopagerize_link"]', document, null, 9, null);
        autopagerizeLink.singleNodeValue.dispatchEvent(e);
      }
    }

    function addSwitch() {
      document.addEventListener('keydown', toggle, true);
    }

    function removeSwitch() {
      document.removeEventListener('keydown', toggle, true);
    }

    var allInputText = document.evaluate('//input|//textarea', document.body, null, 5, null);

    while(inputText = allInputText.iterateNext()) {
      inputText.addEventListener('focus', removeSwitch, true);
      inputText.addEventListener('blur', addSwitch, true);
    }

    addSwitch();
  }
})();

うーん

今回、dispatchEvent を使ってみたけど、それ以外になんか方法ないかなー。