hitode909の日記

趣味はマリンスポーツですの日記です

Javascriptでクリックする(Twitterで「新着何件」みたいなボタンをクリックする)

TwitterのHomeを開いていると,新たな更新があるとき,3 new tweets.みたいなのが表示されて,クリックすると表示される.
http://gyazo.com/4ce09bdc6be128f2b17b486d33e08023.png
これを一日中クリックし続けるのは指が疲れるので,自動的にクリックさせるようにしてみた.


Twitterで「新着何件」みたいなボタンが出た瞬間にクリックする — Gist

// ==UserScript==
// @name click-new
// @namespace http://www.hatena.ne.jp/hitode909
// @include http://twitter.com/*
// @include https://twitter.com/*
// ==/UserScript==
 
setInterval(function() {
    var button = document.querySelector("#results_update");
    if (!button || button.style.display == "none") return;
    var evt = document.createEvent("MouseEvents");
    evt.initMouseEvent("click", true, true, window,
        0, 0, 0, 0, 0, false, false, false, false, 0, null);
    button.dispatchEvent(evt);
}, 1000);


上記のように,clickイベントを作ってelementにdispatchすると,クリックしたことにできるのだけど,引数が多くてめんどくさい.
jQueryを使えば,trigger("click")だけでできる.
これを,

    var button = document.querySelector("#results_update");
    if (!button || button.style.display == "none") return;
    evt.initMouseEvent("click", true, true, window,
        0, 0, 0, 0, 0, false, false, false, false, 0, null);
    button.dispatchEvent(evt);

こう書ける.

    $("#results_update:visible").trigger("click");