顯示具有 Javascript 標籤的文章。 顯示所有文章
顯示具有 Javascript 標籤的文章。 顯示所有文章

2019年10月16日 星期三

整理csv雙引號工具

Input:
Output:


原始碼:

2018年8月10日 星期五

隨機配對兩組資料

輸入1 輸入2 配對結果

原始碼:

後記:
用來隨機配對兩筆資料。

2017年10月24日 星期二

整理問卷客製化工具

Input:
Sort out:

原始碼:
<div>
    Input:
    <br />
    <textarea id="rowdata" cols="40" rows="10" onclick="select()"></textarea>
</div>
<div>
    Sort out:
    <br />
    <textarea id="sortout" cols="40" rows="10" onclick="select()"></textarea>
</div>
<script type="text/javascript">
    var timer = 0;
    var compute = function () {
        if (timer) clearTimeout(timer);
        timer = setTimeout(function () {
            var sum = 0;
            var items = document.getElementById("rowdata").value.split("\n");
            var sort = document.getElementById("sortout");
            sort.value = "";
            var i = 0;
            for (i=1;i<items.length;i++) {
                var nums = items[i].match(/[0-9]/gi);
                var ans = "未填";
                if(nums) {
                    nums.sort(function(a, b) {
                        return a > b;
                    });
                    ans = nums.reduce(function(sum, value) {
                        return sum + "," + value;
                    });
                }
                var text = items[i].replace(/[0-9]/gi, '');
                sort.value += ans + "\t" + text + "\n";
            }
        }, 100);
    };
    document.getElementById("rowdata").onkeyup = compute;
    compute();
</script>


後記:
手工將問卷轉成數位時使用,
假設複選1、3,並且有備註文字,
則在Excel選項打成『13備註文字』,
整欄打完後透過此工具可整理為兩欄資料,
第一欄為選項『1,3』第二欄為『備註文字』,
如此一來貼回去Excel整理時會快上很多,
一次請複製一整欄,第一列會自動排除掉。

2017年6月29日 星期四

逐行整數加總工具

Input:
Sort out:
Sum:


後記:
由於Word表格加總太麻煩,單純是用來複製貼上算錢的工具。

2017年4月19日 星期三

Slideshare圖片下載腳本



原始碼:
// ==UserScript==
// @name          Slideshare DownloadBoxy
// @description   Slideshare Download URL Generator
// @auther        https://toolboxy.blogspot.com/
// @include       https://www.slideshare.net/*
// @version       0.2
// ==/UserScript==
function $(id) {
    var i = 0;
    var j = 0;
    var elems = document.body.getElementsByTagName('*');
    var target = id.substr(1);
    var result=[];
    for(i=0;j=elems[i];i++) {
        if(j.getAttribute("class")) {
            if(j.getAttribute("class").indexOf(target)!=-1) {
                result.push(j);
            }
        }
    }
    return result;
}

function slideshareboxy() {
    var e = $('.slide_container')[0].getElementsByTagName('img');
    var o = "";
    for(var key=0;key<e.length;key+=1) {
        if(e[key].attributes['data-full']) {
            var url = e[key].attributes['data-full'].value;
            a = document.createElement("a");
            a.target = "blank";
            a.download = "download";
            a.href = url;
            a.click();
        }
    }
}

function downloadboxy() {
    var btn = document.createElement("button");
    btn.onclick = function() {
        slideshareboxy();
    };
    btn.innerHTML = "Download Images";
    $('.playerWrapper')[0].appendChild(btn);
}
downloadboxy();
下載:https://greasyfork.org/zh-TW/scripts/29080-slideshare-downloadboxy
後記:
剛剛想下載某人的PPT卻捉不下來,
所以就乾脆捉圖片下來合=.=

2013年8月22日 星期四

PDF 複製文字換行修正翻譯工具 v2.1

啟用翻譯, 啟用全選
Input:
Output:
Translate:
(不支援IE!!) 原始碼:

2013年7月29日 星期一

String 與 UTF-8 互轉

StringUTF-8

原始碼:
<table border="1" cellpadding="5" rules="all">
<tr><td>String</td><td>UTF-8</td></tr>
<tr><td><input id="str2utf8InputBoxy" size="30" value="123abcABC許功蓋" /></td><td><input id="str2utf8OutputBoxy" size="30" value="" /></td></tr>
<tr><td><button id="str2utf8ConvertBoxy">String to UTF-8</button></td><td><button id="utf8ToStrConvertBoxy">UTF-8 to String</button></td></tr>
</table>
<script type="text/javascript">
function $(id) {return document.getElementById(id.substr(1));}
var str2utf8 = function(word) {
    var output = "";
    for(key in word) {
        var dec = word[key].charCodeAt(0);
        if((dec>47 && dec<58) || (dec>64 && dec<91) || (dec>96 && dec<123)) {
            output += '%' + dec.toString(16);
        } else {
            output += encodeURIComponent(word[key]);
        }
    }
    return output;
};
$('#str2utf8InputBoxy').onclick = function() {
    $('#str2utf8InputBoxy').select();
};
$('#str2utf8OutputBoxy').onclick = function() {
    $('#str2utf8OutputBoxy').select();
};
$("#str2utf8ConvertBoxy").onclick = function() {
    $("#str2utf8OutputBoxy").value = str2utf8($("#str2utf8InputBoxy").value);
};
$("#utf8ToStrConvertBoxy").onclick = function() {
    $("#str2utf8InputBoxy").value = decodeURIComponent($("#str2utf8OutputBoxy").value);
};
</script>

後記:
此程式乃用來補足encodeURIComponent語法未包含數字與英文的UTF-8轉換問題。

2013年7月13日 星期六

自動以原始大小開啟Picasa圖片

功能說明:
在新分頁開啟Picasa圖片時,將自動將小圖替換大圖。

下載點:
http://userscripts.org/scripts/show/155677

原始碼:
// ==UserScript==
// @name          PicasaBoxy
// @description      Auto Load Original size
// @auther        http://toolboxy.blogspot.com/
// @include       *.googleusercontent.com/*
// @version       0.5
// ==/UserScript==

(function(){
    var picasaRegex = new RegExp(/^http(?:s)?:\/\/lh[0-9]?\.googleusercontent\.com\/[-_0-9a-zA-Z]{12}\/[-_0-9a-zA-Z]{11}\/[-_0-9a-zA-Z]{11}\/[-_0-9a-zA-Z]{11}\/([-_0-9a-zA-Z]{1,})\/.+$/);
    var url = window.location.href;
    if(url.match(picasaRegex)[1]!="s0") {
        document.location = url.replace(url.match(picasaRegex)[1], "s0");
    }
})()

2012年10月25日 星期四

PDF 複製文字換行修正工具


原始碼:
<!--[if gt IE 6]><!-->
<div align="center">
    <table>
        <tr>
            <td>
                <textarea id="inputcode" onclick="select()" cols=100 rows=10></textarea>
            </td>
        <tr>
        </tr>
            <td>
                <div align="center"><input type="button" value=">>" onclick="codereplace()" /></div>
            </td>
        <tr>
        </tr>
            <td>
                <textarea id="outputcode" onclick="select()" cols=100 rows=10></textarea>
            </td>
        </tr>
    </table>
</div>
<script type="text/javascript">
function $(id) {
    if(id.substr(0,1)=='#')
        return document.getElementById(id.substr(1));
}
$('#inputcode').onchange = function(e) {
    codereplace();
};
function showtoolbar() {
    $("#codereplace").style.display = "block";
    $("#showtoolbar").style.display = "none";
}
function codereplace() {
    var recode = $("#inputcode").value;
    recode = recode.replace(/(fi)/gi,"fi"); //修正fi相黏問題
    recode = recode.replace(/(-\n)/gi,""); //合併單字換行
    recode = recode.replace(/[\n]/gi," "); //換行符號轉空白
    $("#outputcode").value = recode;
}
</script>
<!--><![endif]-->

2012年2月8日 星期三

數字轉國字


說明:
輸入數字轉成支票格式國字。

原始碼:
<input id="input_num" type="text" size="30" value="" />
<button id="convert_num">Convert</button>
<input id="output_num" type="text" size="30" value="" />
<script type="text/javascript">
function $(id) {return document.getElementById(id.substr(1));}
$('#output_num').onmouseover = function() {
    $('#output_num').select();
};
$('#convert_num').onclick = function() {
    var chnum = "零壹貳參肆伍陸柒捌玖";
    var chunit = "拾佰仟";
    var chunits = "\r萬億兆京垓秭穰溝澗正載極";
    var num = $('#input_num').value?$('#input_num').value:"";
    var output = "";
    var is_zero = true;
    for(var i=0;i<num.length;i++) {
        var n = parseInt(num.charAt(i));
        if(isNaN(n)) {
            $('#output_num').value = "Error";
            return;
        }
        if((num.length-i-1)%4 == 0) {
            if(n == 0) {
                if(!is_zero)
                    output += chunits.charAt((num.length-i-1)/4);
                is_zero = true;
            } else {
                output += chnum.charAt(n) + chunits.charAt((num.length-i-1)/4);
                is_zero = false;
            }
        } else if(n != 0) {
            output += chnum.charAt(n) + chunit.charAt((num.length-i-1)%4-1);
            is_zero = false;
        }
    }
    $('#output_num').size = output.length*2;
    $('#output_num').value = (output?output:"零") + "元整";
}
</script>

2012年1月7日 星期六

計算BMI工具

體重過輕 (Under weight)BMI < 18.5
體重正常 (Normal weight)18.5 ≤ BMI <24
體重過重 (Over weight)24 ≤ BMI < 27
輕度肥胖 (Mildly obese)27 ≤ BMI < 30
中度肥胖 (Moderately obese)30 ≤ BMI < 35
重度肥胖 (Severe obesity)35 ≤ BMI

Height (cm):
Weight (kg):



後記:
雖然是很簡單的程式,不過因為需要用所以隨手寫了下,畢竟最近體重被盯很緊...( 艸)

原始碼:
<table>
<tr><td>體重過輕 (Under weight)</td><td>BMI &lt; 18.5</td></tr>
<tr><td>體重正常 (Normal weight)</td><td>18.5 &le; BMI &lt;24</td></tr>
<tr><td>體重過重 (Over weight)</td><td>24 &le; BMI &lt; 27</td></tr>
<tr><td>輕度肥胖 (Mildly obese)</td><td>27 &le; BMI &lt; 30</td></tr>
<tr><td>中度肥胖 (Moderately obese)</td><td>30 &le; BMI &lt; 35</td></tr>
<tr><td>重度肥胖 (Severe obesity)</td><td>35 &le; BMI</td></tr>
</table>
<br />
Height (cm): <input type="text" id="hhboxy" /><br />
Weight (kg): <input type="text" id="whboxy" /><br />
<button id="countboxy">Count</button><br />
<span id="bmiboxy"></span>
<script type="text/javascript">
var bmiboxy = new function() {
    return {
        json : {
              0 : "體重過輕 (Under weight)",
            185 : "體重正常 (Normal weight)",
            240 : "體重過重 (Over weight)",
            270 : "輕度肥胖 (Mildly obese)",
            300 : "中度肥胖 (Moderately obese)",
            350 : "重度肥胖 (Severe obesity)"
        },
        count : function() {
            var height = document.getElementById('hhboxy').value;
            var weight = document.getElementById('whboxy').value;
            var bmi = weight/Math.pow(height/100 ,2);
            for(var key in this.json)
                if(bmi >= (key/10))
                    var explain = this.json[key];
            document.getElementById('bmiboxy').innerHTML = "BMI=" + bmi.toPrecision(5) + ", " + explain;
        }
    };
};
document.getElementById('countboxy').onclick = function() {
    bmiboxy.count();
};
</script>

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()" />

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