Direcory Index Image Viewer – Userscripts.org
http://userscripts.org/scripts/show/9601
Directory Indexの画像を展開してくれるyoupyさんのスクリプト。
便利だけど数が多いときにブラクラ状態になる。
徐々に開くようにして、そうならないようにするのを考えてみた。
var title = $t('title')[0]; if (!!title && title.innerHTML.match(/Index of \//)) { var l = Array.prototype.filter.apply($t('a'), [function(e) { return e.href.match(/png|gif|jpe?g/i) }]); stepEachGen(10, 10000)(l, link2img); } function stepEachGen(step, interval) { return function(list, f) { list.slice(0, step).forEach(f); if (list.length > step) { var c = arguments.callee; setTimeout(function() { c(list.slice(step), f) }, interval); } } } function $t(tagname) { return document.getElementsByTagName(tagname); } function link2img(e) { var img = document.createElement('img'); img.src = e.href; e.innerHTML = ''; e.appendChild(img); return e; }
それでもまあ重くなるときは重くなるし、ベンチとかしてないから本当に軽くなってるかは不明。
あと再帰が深くなるとブラウザに止められるかもしれないし、setTimeoutだからそうでもないのかもしれない。
再帰じゃなくて、setTimeoutを秒数増やしながら最初に全部やっちゃうとかのがいいのかも。
あと待つ秒と開く画像の個数を調整がむずかしい。そのへんはネットワーク回線とかCPUとかメモリ次第な気もする。
抽象化しようとしてクロージャを使ってみたら、なんだかよく分らなくなった。
今気がついたけど、ディレコリーになってるね。