2011年12月29日 星期四

Jsonp 整理檢視工具



說明:
輸入Jsonp網址即時檢視Json內容架構。

原始碼:
<input type="text" id="dumpvalue" value="http://...&alt=json&callback=?" />
<button id="dumpbtn">Dump</button>
<pre id="gplus"></pre>
<script type="text/javascript">
function $(id) {
    var key = id.substr(0,1);
    switch(key) {
        case '#':
            return document.getElementById(id.substr(1));
        case '.':
            var elems = document.body.getElementsByTagName("*");
            var target = id.substr(1);
            var result=[];
            for (i=0;j=elems[i];i++) {
                if((j.className).indexOf(target)!=-1) result.push(j);
            }
            return result;
        default:
            return document.getElementsByTagName(id);
    }
}
var dumpboxy = new function() {
    return {
        getjson : function(json) {
            $('#gplus').innerHTML = this.dump(json);
        },
        sendjson : function(url, func) {
            var cp = url.indexOf("callback=?");
            var rm = $('#scriptBoxy');
            if(rm) rm.parentNode.removeChild(rm);
            var script = document.createElement('script');
            script.type = 'text/javascript';
            script.id = 'jsonScript';
            script.src = url.substring(0, cp)+"callback="+func+url.substring(cp+10, url.length);
            document.getElementsByTagName('head')[0].appendChild(script);
        },
        dump : function(arr, level) {
            var dumped_text = "";
            if(!level) level = 0;
            var level_padding = "";
            for(var j=0;j<level+1;j++) level_padding += "\t";
            if(typeof(arr) == 'object') {
                for(var item in arr) {
                    var value = arr[item];
                    if(typeof(value) == 'object') {
                        dumped_text += level_padding + "'" + item + "' ...\n";
                        dumped_text += this.dump(value, level+1);
                    } else {
                        dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
                    }
                }
            } else {
                dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
            }
            return dumped_text;
        }
    };
}
$('#dumpbtn').onclick = function(e) {
    dumpboxy.sendjson($('#dumpvalue').value, "dumpboxy.getjson");
};
$('#dumpvalue').onclick = function(e) {
    $('#dumpvalue').select();
};
</script>

2011年11月9日 星期三

線上手動節拍速度量測器



說明:
此為簡易Tempo測量BPM之按鈕,
照著音樂拍子手動按下按鈕即可,
按的越多次平均量測值就越準確,
連點兩下後即可重置按鈕。

原始碼:
<script type="text/javascript">
var tempoboxy = new function() {
    return {
        num : 0,
        oldtime : 0,
        bpms : new Array(),
        bpm : function() {
            var i = 0;
            var sum = 0;
            var d = new Date();
            var time = d.getHours()*1000*60*60 + d.getMinutes()*1000*60 + d.getSeconds()*1000 + d.getMilliseconds();
            var tempoboxy = document.getElementById("tempoboxy");
            this.bpms[this.num] = 60000/(time-this.oldtime);
            if(this.oldtime==0) { //第一次記數
                this.oldtime = time;
                tempoboxy.innerHTML = "000.00 BPM";
            } else if(this.bpms[this.num]>300) { //連點兩下重置
                this.num = 0;
                this.oldtime = 0;
                this.bpms = new Array();
                tempoboxy.innerHTML = "bpm measure";
            } else { //累積記數計算
                this.oldtime = time;
                this.num++;
                var len = this.bpms.length;
                for(i=0;i<len;i++) sum += this.bpms[i];
                tempoboxy.innerHTML = (sum/len).toPrecision(5) + " BPM";
            }
        }
    };
};
</script>
<button id="tempoboxy" onClick="tempoboxy.bpm();" style="width:120px;">bpm measure</button>

2011年8月25日 星期四

@魔法少女小圓全圖

原始碼:
<script type="text/javascript">
function init() {
    var mahou = document.getElementById('mahou');
    var t = new Array(8, 15, 20, 20, 12);
    for(var i=0;i<5;i++) {
        for(var j=1;j<=t[i];j++)
            mahou.innerHTML += "<img src='http://img.atgames.jp/campaign_event/2011/madoka-magica/0816_event/battle/g" + (i+1) + "_" + j + ".jpg' />";
        mahou.innerHTML += "<hr />";
    }
}
window.onload = init;
</script>
<div id="mahou"></div>
全圖:
http://pastehtml.com/view/b4zzix67g.html

後記:
很簡單的雙迴圈讓圖全部顯示-.-

2011年8月12日 星期五

@BeastBoxy


腳本名稱:@BeastBoxy
腳本安裝:http://userscripts.org/scripts/show/109958 (進去後按右上角Install)
腳本支援:Google Chrome(直接裝)、Firefox(需先安裝GreaseMonkey)
腳本功能:
  1. 讓您一個願望一次滿足的(廢話w)...自動按きたよー
腳本更新:
  1. v0.1 自動按きたよー
後記:
GreaseMonkey腳本工具是裝在Firefox瀏覽器上面的,
而腳本當然就是裝在腳本工具上使用的,
如果您本身就有在用Firefox瀏覽器的GreaseMonkey腳本工具,
那麼userscripts.org成千上萬的外掛腳本您應該不陌生=.=

其實聽說IE瀏覽器有套Trixie可以使用腳本,
不過我沒用過所以不知道能不能用...(遠目

原始碼:
// ==UserScript==
// @name          BeastBoxy
// @description      Auto click button
// @auther        http://toolboxy.blogspot.com/
// @include       http://sns.atgames.jp/*
// @version       0.1
// ==/UserScript==
var evt=document.createEvent("MouseEvents");
evt.initEvent("click",true,true);

/*きたよー*/
if(document.getElementById('greetingNegative').style.display=='none'){
    document.getElementById('greetingAct2').dispatchEvent(evt);
}

2011年8月6日 星期六

霜月語法轉換工具

請貼入JavaScript內容(不支援IE6):

2011年7月30日 星期六

Repeat Youtube v0.4

此工具搬家囉 ~ 0w0
http://youtuberepeat.blogspot.com/

2011年7月26日 星期二

金錢遊戲留言板刷新

安裝(v0.1):
1. 新增書籤連結。
2. 標題自訂。
3. 網址貼入以下內容:
為維護地球世界和平已刪除=w=
說明:
也可以直接複製貼到網址列按下ENTER執行,
其中的3000是指3秒鐘刷新一次,
改成5000就是5秒鐘刷新一次。

問題:
因為只是讓程式每3秒按一次左邊的『聊天室』按鈕,
所以你按訊息按鈕3秒後就會切回去聊天室...

聲明:
雖然這個小工具沒有影響遊戲平衡,
但是造成了伺服器的負擔,
請慎用!!不要掛網!!
javascript:setInterval("test2()", 3000);function test2(){var evt=document.createEvent("MouseEvents");evt.initEvent("click",true,true);document.getElementById("tag_win").getElementsByTagName("div")[0].dispatchEvent(evt);}

2011年6月23日 星期四

@餐廳/服飾店 送禮工具


安裝(v0.2):
1. 新增書籤連結。
2. 標題自訂。
3. 網址貼入以下內容(點兩下選取):
javascript:var ac=document.getElementsByName("friendFrame")[0].contentDocument.getElementById("dscrp").parentNode.getElementsByTagName("input");for(i=0;i<10;i++){if(ac[i].type=="checkbox"){ac[i].click();}};

說明:
餐廳好友多的朋友可能會有這種困擾,
送禮的時候常常點的手很痠或點歪,
如果您跟我一樣常常點到冒青筋的可以把這個按鈕裝上,
這顆按鈕的功能就是可以幫您一次選(海苔)十個人www
改天閒閒再改成按下去直接選10個並送出好了030

註:
1. 目前僅測試過GoogleChrome、Firefox、IE(感謝小宇測試)可用。
2.您不用換分頁直接就會選到了。

後記:
其實光寫這行就寫了兩三個鐘頭(果然還太淺Orz
就因為iframe域名權限問題沒辦法直接改寫,
最後才想到可以直接給click動作命令-.-"
也稍微學到些經驗感覺還不錯,
至於Flash控制實在太難就不打算去學了(舉白旗


版本說明:
v0.1 - 一次選十個基本功能雛型
javascript:for(i=0;i<10;i++){document.getElementsByName("friendFrame")[0].contentDocument.getElementById("dscrp").parentNode.getElementsByTagName("input")[i].click();};

v0.2 - 修正最後一批會自動按送出的問題
javascript:var ac=document.getElementsByName("friendFrame")[0].contentDocument.getElementById("dscrp").parentNode.getElementsByTagName("input");for(i=0;i<10;i++){if(ac[i].type=="checkbox"){ac[i].click();}};

2011年6月10日 星期五

大小於HTML碼取代

將小於取代為『&lt;』
將大於取代為『&gt;』
將Tab字元取代為『    』




原始碼:
<script type="text/javascript">
function replace() {
	var str = document.getElementById("input").value;
	var regex = str;
	if(document.getElementById("lt").checked == true)
		regex = regex.replace(/[<]/gi,"&lt;");
	if(document.getElementById("gt").checked == true)
		regex = regex.replace(/[>]/gi,"&gt;");
	if(document.getElementById("sp").checked == true)
		regex = regex.replace(/[\t]/gi,"    ");
	document.getElementById("output").value = regex;
}
</script>
<input type="checkbox" id="lt" checked/>將小於取代為『&amp;lt;』<br />
<input type="checkbox" id="gt" checked/>將大於取代為『&amp;gt;』<br />
<input type="checkbox" id="sp" checked/>將Tab字元取代為『&nbsp;&nbsp;&nbsp;&nbsp;』<br />
<textarea id="input" onclick="document.getElementById('input').select();" cols=40 rows=6>Code<br />
	Code<br />
		Code<br /></textarea><br />
<textarea id="output" onclick="document.getElementById('output').select();" cols=40 rows=6></textarea><br />
<input type="button" value="replace" onClick="replace()" />

說明:
用於將程式碼貼入具檢查機制之部落格,
避免該部落格過濾器判斷錯誤而事先轉碼。