EulerFriendDiff
by
z_kro
2013-11-11 [2013/11/11 19:53:47]
Project Euler の Friend 一覧(http://projecteuler.net/friends)で各ユーザーと自分との解答数の差分を表示する
@@ -5,32 +5,34 @@
* @license MIT License
* @require
*/
+(function (){
+ if(!window.EulerFriendDiff){
+ 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;
+ }
+ }
-(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]);
- }
- }
+ 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]);
+ }
+ }
+ window.EulerFriendDiff = true;
+ }
})();
/*
* @title EulerFriendDiff
* @description Project Euler の Friend 一覧(http://projecteuler.net/friends)で各ユーザーと自分との解答数の差分を表示する
* @include http://projecteuler.net/friends
* @license MIT License
* @require
*/
(function (){
if(!window.EulerFriendDiff){
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]);
}
}
window.EulerFriendDiff = true;
}
})();
- Permalink
- このページへの個別リンクです。
- RAW
- 書かれたコードへの直接のリンクです。
- Packed
- 文字列が圧縮された書かれたコードへのリンクです。
- Userscript
- Greasemonkey 等で利用する場合の .user.js へのリンクです。
- Loader
- @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
- Metadata
- コード中にコメントで @xxx と書かれたメタデータの JSON です。