EulerFriendDiff

    
      
  • /*
     * @title EulerFriendDiff
     * @description Project Euler の Friend 一覧(http://projecteuler.net/friends)で各ユーザーと自分との解答数の差分を表示する
     * @include http://projecteuler.net/friends
     * @license MIT License
     * @require 
     */
    
    (function(){
    	var trs = document.getElementsByClassName('grid')[0].getElementsByTagName('tr');
    	var myScore;
    	var scores  = [];
    	for(var i = 1; i < trs.length; ++i){
    		if(trs[i].style.height) {
    			var score = trs[i].childNodes[7].childNodes[0].innerHTML * 1;
    			scores.push(score);
    			if(trs[i].childNodes[14].childNodes[0].nodeType === 3) myScore = score;
    		}
    	}
    	
    	var title = document.createElement('th');
    	title.innerHTML = "Difference";
    	title.style.width = "4em";
    	trs[0].appendChild(title);
    	for(var i = 1; i < trs.length; ++i){
    		if(trs[i].style.height) {
    			var elem = document.createElement('td');
    			var score = scores.shift();
    			var sign = score > myScore ? '+' : score < myScore ? '-' : '';
    			elem.innerHTML = sign + Math.abs(myScore - score);
    			elem.style.color = score > myScore ? 'red' : score < myScore ? 'blue' : 'green';
    			elem.style.textAlign = "center";
    			trs[i].insertBefore(elem, trs[i].childNodes[trs[i].childNodes.length-1]);
    		}
    	}
    })();
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。

History

  1. 2013/11/11 19:53:47 - 2013-11-11
  2. 2013/11/11 19:40:16 - 2013-11-11