www.aguse.jp のクリック回数を劇的に減らすスクリプト(最新版はクリック不要)
指定した Web ページのセキュリティや SEO 関連情報をまとめて調べるのに便利なサービスで、日本の Adblock Plus 用フィルタ (ABP filters for JP) でも外部(3rd party)広告スクリプト調査で重宝してます
「次の10件を表示」クリック1回で全件表示するスクリプト
Greasemonkey に以下のスクリプトをインストールして解決
今まで何十回もクリックしないと全部表示されなかった表が1クリックでこの通り
例えば、このブログページを www.aguse.jp で解析 させると...
初期状態 | 通常の1クリック (残り13回クリック...orz) |
スクリプト適用後の1クリック |
---|---|---|
スクリプトのソース
やってることは簡単
-
- 件数を取得
- それを「次の10件を表示」の onclick に上書き設定
(クロス・プラットフォームとかは考慮してません)
// ==UserScript== // @name Expand www.aguse.jp result with just ONE click // @namespace http://d.hatena.ne.jp/k2jp/ // @description External-connection section is limitted to 10 results by default. // You can click "Next 10 results" button each time to the end. // But this clicking, clicking and clicking... are too boring to death. // This script helps you to open it with just ONE click, by overwriting // default limitation value from 10 to total value. // @include http://www.aguse.jp/* // @author k2jp // @version 0.0.1 // ==/UserScript== (function(){ window.addEventListener("load", function() { // Excute the following script after the page is loaded. var intervalID = setInterval( function() { // Overwrite existing onclick script. var n10 = null; // <img id="next_10" src="http://a002.aguse.jp/image/btn_next10_on.gif" alt="次の10件を表示" onclick="setAllOuterLinks(0,10,'next_10');"> var gif = ""; // http://a002.aguse.jp/image/btn_next10_on.gif var outer_cnt = 0; // Objects with external connecting(Total#) var target_fn = ""; // setAllOuterLinks(0,10,'next_10') if( n10 = document.getElementById("next_10") ) { // If there is "Display next 10 results" button image. if( gif = n10.getAttribute("src") ) { // Check if the button is active. if( -1 == gif.lastIndexOf("_on.") ) { // no more result or no result. Reset interval and exit. clearInterval(intervalID); }else{ // Get the total number of result records. outer_cnt = document.getElementById("outercnt"); outer_cnt = ~~outer_cnt.innerHTML; if(0 != outer_cnt) { if( target_fn = n10.getAttribute("onclick") ) { // Overwrite this "onclick" event. splited = target_fn.split(","); // ["setAllOuterLinks(0" , "10" , "'next_10')"] if(splited[1] == 10) { // Overwrite 2nd parameter of setAllOuterLinks function with total number of results. splited[1] = outer_cnt; }else{ // Needless to overwrite twice. clearInterval(intervalID); } target_fn = splited.join(","); // setAllOuterLinks(0,#,'next_10') n10.setAttribute("onclick", target_fn); } } } } } } , 1000); } , false); }) ();
インデント深くて格好悪い...orz