ACR WEBとi2iのアクセスランキングを設置しているサイトで数値を含む全ランキングを見るブックマークレット
手抜きして前の記事の題名を持ってきたので長い。
自分でよく使うのでブックマークレットにしました。ちなみに、ブックマークレットは初めて作りました。
特徴
ブックマークレット(コンソールに出す版)
javascript:(function(){var list=[{xpath:'//script[contains(@src,"ziyu.net/rank.php")]',src:/rank.php\?(.+)/,dest:'html/$1.html'},{xpath:'//script[contains(@src,"i2i.jp/view/index.php")]',src:/index.php\?(.+?)&.+/,dest:'longview/$1.html'}];list.forEach(function(pattern){var result=document.evaluate(pattern.xpath,document,null,5);var script=result&&result.iterateNext();while(script){var link=script.getAttribute('src').replace(pattern.src,pattern.dest);console.log('ranking:',link);/*window.open(link);*/script=result.iterateNext();}});})()
ブックマークレット(window.openする版)
javascript:(function(){var list=[{xpath:'//script[contains(@src,"ziyu.net/rank.php")]',src:/rank.php\?(.+)/,dest:'html/$1.html'},{xpath:'//script[contains(@src,"i2i.jp/view/index.php")]',src:/index.php\?(.+?)&.+/,dest:'longview/$1.html'}];list.forEach(function(pattern){var result=document.evaluate(pattern.xpath,document,null,5);var script=result&&result.iterateNext();while(script){var link=script.getAttribute('src').replace(pattern.src,pattern.dest);console.log('ranking:',link);window.open(link);script=result.iterateNext();}});})()
整形版
javascript:(function() {
var list = [
{xpath:'//script[contains(@src,"ziyu.net/rank.php")]', src:/rank.php\?(.+)/, dest:'html/$1.html'},
{xpath:'//script[contains(@src,"i2i.jp/view/index.php")]', src:/index.php\?(.+?)&.+/, dest:'longview/$1.html'}
];
list.forEach(function (pattern) {
var result = document.evaluate(pattern.xpath, document, null, 5);
var script = result && result.iterateNext();
while (script) {
var link = script.getAttribute('src').replace(pattern.src, pattern.dest);
console.log('ranking:', link);
/*window.open(link);*/
script = result.iterateNext();
}
});
})()
あと、JavaScriptのXPathを使うのも初めてだったけど、なんでイテレーターにhasNextみたいなのがないの? 普通にforで回した方が楽だったわ。