Hatena::ブログ(Diary)

k12uのアレ RSSフィード

2007-05-01

PASMO履歴照会サービスがどうかと思ったのでGreasemonkeyでどうにかしてみた

履歴照会画面で残額しか表示されないのでいくらかかったのか計算しなくてはいけない…

f:id:k12u:20070501203328p:image:left








計算させた。

f:id:k12u:20070501203343p:image:left








追記:ついでだから総額も表示するようにした

f:id:k12u:20070501213015p:image








どう考えても使い過ぎ><

// ==UserScript==
// @name           PASMO Table Extension
// @namespace      http://k12u.org/gm/pasmo/
// @description    PASMO Table Extension to display each charge
// @include        https://www.pasmo-mypage.jp/CardStatusWebForm.aspx
// ==/UserScript==


(function () {
    var sum = 0;
    var tbody = document.getElementsByTagName('tbody')[9];
    var trs   = tbody.getElementsByTagName('tr');

    var header_tr = trs[1];
    var header_th = document.createElement('th');
    var header_font = document.createElement('font');
    header_th.setAttribute('width', 80);

    header_font.appendChild(document.createTextNode('変動額'));
    header_font.setAttribute('color', '#ffffff');
    header_th.appendChild(header_font);
    trs[1].appendChild(header_th);
	
    trs[0].childNodes[1].setAttribute("colspan", 7);
    for (var i = 3; i <  (trs.length - 2) ; i+=2){
	var tbl_td = document.createElement('td');
	tbl_td.setAttribute('align', 'right');
	var charge = trs[i].childNodes[11].textContent.slice(1)
	    - trs[i+2].childNodes[11].textContent.slice(1);
	if( charge < 0 ) {
	    sum += -charge;
	}
	tbl_td.appendChild(document.createTextNode(charge));
	trs[i-1].childNodes[1].setAttribute("colspan", 7);
	trs[i].appendChild(tbl_td);
    }
    trs[i+1].childNodes[1].setAttribute("colspan", 7);
    var blank = document.createElement('td');
    blank.appendChild(document.createTextNode(''));
    trs[i].appendChild(blank);
    trs[i-1].childNodes[1].setAttribute("colspan", 7);

    var p_node = document.getElementsByTagName('tbody')[2];
    p_node.childNodes[16].childNodes[1].textContent += '利用総額: '+sum;
	
})();

sheilesheile 2008/08/19 11:00 作ろうかと思ったら既にあったのでありがたく使わせていただきますー。
仕様変更があったのか、金額欄が*詰めされるようになっているので、

var charge = trs[i].childNodes[11].textContent.slice(1).replace(/^¥*+/, ””)
- trs[i+2].childNodes[11].textContent.slice(1).replace(/^¥*+/, ””);

に変更させてもらいました。ご報告まで。

AHEADAHEAD 2009/05/23 17:21 このスクリプトを使わせて頂いているんですが,'変動額','利用総額'の文字が文字化けしてしまいます.
プログラムに無知なものですから自力で修正できないので,お助け願います...

k12uk12u 2009/05/23 18:36 AHEADさん
最近使っていないので、よくわかりませんがスクリプトの文字コードをShift-JISで保存するかUTF-8で保存するかどちらかを試せば良さそうな気がします。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/k12u/20070501/p1