Firefoxでのボタンクリックのエミュレーション

Greasemonkey使ってどっかのサイトのナビゲーションを自動化したいことがありました。
たとえばトップページからかならずログインボタンをクリックしないと進めないようなサイトです。


そんなときはボタンのクリックをGreasemonkeyでどうにかならないのかなあ、と思ったことがありました。
でもちょっと検索しても見つけられなくてPOST投げるかなとか思って、でもそれは面倒で止めていました。


ところが今日なんの機会かDOMのリファレンス見てたらクリックを何とかする方法を見つけました。


うれしかったです。

<html>
  <head>
    <script type="text/javascript">
      function simulateClick(obj) {
        var evt = document.createEvent("MouseEvents");
        evt.initMouseEvent("click", true, true, window,
        0, 0, 0, 0, 0, false, false, false, false, 0, null);
        obj.dispatchEvent(evt);
      }
      function cl() {
        var cb = document.getElementById("checkbox");
        simulateClick(cb);
      }
    </script>
  </head>
  <body>
    <form method="POST" action="a">
      <input id="checkbox" type="submit" value="button">
      <input onclick="cl();" value="Simulate click" type="checkbox">
    </form>
  </body>
</html>