デザイン変更対応版
2013年07月04日 (木) 20:45
//定数
const TAGNOVELSET = "ul";
const CLASSNOVELSET = "favnovel";
const TAGLASTMOD = "span";
const REGEXPLASTMOD = "更新日:\\d+年 \\d+月\\d+日 \\d+時\\d+分";

var startTime = new Date();

var tagDocument = window.self.content.document;
var tagNovelset = tagDocument.getElementsByTagName(TAGNOVELSET);
var tagLastmod = tagDocument.getElementsByTagName(TAGLASTMOD);

//中身並べ替え用Index
var novelsetIndex = new Array();
//中身
var novelsetContent = new Array();
//並べ替え基準
var lastmodIndex = new Array();

var regexpLastmod = new RegExp(REGEXPLASTMOD,"ig");
var regexpCreateNumberize = new RegExp("\\d","ig");
var arrNumberize = new Array();

//初期化 更新日抽出
var cnt1 = 0; //いくつ見つけたか
var sRegexpTarget = "";
for (var i = 0; i < tagLastmod.length; i++){
sRegexpTarget = tagLastmod[i].innerHTML;
if(regexpLastmod.test(sRegexpTarget)){
//数値だけ抽出
arrNumberize = sRegexpTarget.match(regexpCreateNumberize);
lastmodIndex[cnt1++] = arrNumberize.join("");
}
}

//初期化2 中身とIndex作成
var cnt2 = 0;
for(var i = 0; i < tagNovelset.length; i++){
if( tagNovelset[i].getAttribute("class") == CLASSNOVELSET) {
novelsetIndex[cnt2] = i;
novelsetContent[cnt2++] = tagNovelset[i].innerHTML;
}
}


//並べえ実施

var maxIndex;
var tmp;

for(var i = 0; i < novelsetContent.length - 1; i++){
maxIndex = i;
for(var j = i + 1; j < novelsetContent.length; j++){
if( lastmodIndex[maxIndex] < lastmodIndex[j] ) {
maxIndex = j;
}
}
tmp = lastmodIndex[i];
lastmodIndex[i] = lastmodIndex[maxIndex];
lastmodIndex[maxIndex] = tmp;

tmp = novelsetContent[i];
novelsetContent[i] = novelsetContent[maxIndex];
novelsetContent[maxIndex] = tmp;
}

for(var i = 0; i < novelsetContent.length; i++){
tagNovelset[novelsetIndex[i]].innerHTML = novelsetContent[i];
}

//経過時間表示
var currentTime = new Date();
//alert( ((currentTime - startTime)) + "ミリ秒経過");
コメント
コメントの書き込みはログインが必要です。