
Mozilla用ブックマークレット、懲りずにまだまだやるよー。
ime.nu消去からさらに一歩進んで、ttpから始まるURLを直リンクにしてしまおうといろいろ考えてミタ。
javascript:
var L = document.links;
for (i = 0;i < L.length; i++) {
L[i].setAttribute('href',L[i].href.replace('ime.nu/',''));
L[i].setAttribute('href',L[i].href.replace('pinktower.com/',''));
}
var RES = document.getElementsByTagName('dd');
for (i = 0; i < RES.length; i++) {
var temp = document.createElement('div');
var COM = RES[i].childNodes;
for (j = 0; j < COM.length; j = j) {
if (/^ttp/.test(COM[0].nodeValue)) {
COM[0].nodeValue = COM[0].nodeValue.replace(/^ttp/, 'http');
var x = document.createElement('a');
var txt = document.createTextNode(COM[0].nodeValue);
x.appendChild(txt);
x.setAttribute('href',COM[0].nodeValue);
temp.appendChild(x);
RES[i].removeChild(RES[i].childNodes[0]);
} else {
temp.appendChild(COM[0]);
}
}
RES[i].appendChild(temp);
}
COM[j].nodeValue='';
上の「2chスレ用URL直リンク化」のリンクを右クリックでブックマーク登録してクダサイ。昨日と同様、まずはリンクからime.nu/、pinktower.com/を削った後でdd要素の子nodeを順次チェックしていきます。この時、nodeValueがttpから始まっていなければ、テンポラリ用に作ったdiv要素の子nodeとして移動します。ttpから始まっていれば、a要素を作ってやってからテンポラリのdiv要素の子nodeに追加します。……ちゅーか、この操作がコピーではなく移動になってしまうのがよくわからんかった。とりあえずは、そういうものなんだと考えておこう。dd要素の子nodeを全てチェックし終えたら、最後にdiv要素をdd要素の子nodeとして追加してやります。……この辺り、もうちっとなんとかできないものか。
ところで、このスクリプトだとURLの後ろにbr要素なしで直接文字が続いていた場合はうまくいかないのですよね。
もひとつ、今度はちとインタラクティブ(ぉ なスクリプトを。
javascript:
E = prompt('要素を指定','');
S = prompt('スタイルを設定','');
Es = document.getElementsByTagName(E);
for (i = 0; i < Es.length; i++) {
Es[i].setAttribute('style',S);
}
[要素スタイル変更]
これは、タグ名で要素を指定してstyle属性を追加するブックマークレット。最初のダイアログでタグ名を入れて(例えば画像なら「img」)、次のダイアログで追加するスタイルを指定。例えば「display:none」とやれば、ブックマークレット適用ページに表示されていた画像がすべて消え去ります。「border:1px solid red」とやれば、1ピクセルの赤線の枠が付きます。……CSSがわからないと何のことだかわかりませんな。
それにしてもまあ、こういう暇人な作業ってどうしてこんなに楽しいのであろうか。