このサイトのHTML版でopera:configへのリンクに含まれる|
が%7C
に変換されていることに気付いた。Operaユーザが好んでHTML版を閲覧することは考えにくいので問題ないと言えば問題ないのだけれど、気持ち悪いのも間違いないからちょっと弄っておいた。しかしどこの過程で変換されているのだろう。……いや、何となく心当たりはあるのだけれど、確認する気にならない。HTML版とか、どうでも良いよ、あんなの。
ついでにJavaScript書き換え。今までOpera以外の環境下で閲覧された場合はoperaスキームへの(意味のない)アンカーを単純に外していたのだけれど、opera:configへのアンカーの場合だけは文字列として挿入するようにしてみた。Operaの人はそのままアンカーを使い、他の環境の人は自力でコピペ。多少は使い勝手が良くなったと信じる。
で、こんな感じになった。higeorangeさんが作ってくれたスクリプトがベース。href
属性を消すだけだと手抜きのユーザCSSを使っている人辺りがかわいそうなのでspan
に置換する古い奴を使っている。明らかに無駄な記述があるけれど、自分の低い理解レベルに甘んじると云うことで、今のところ最適化の予定はない。
function removeOperaScheme(){
var anc = document.getElementsByTagName('a');
a = anc.length;
for (var i = 0; i < a; i++) {
if(anc[i].href.match(/^opera:/i)) {
var span = document.createElement('span');
if (span.title) {
span.title = anc[i].title;
}
span.className = 'opera-config-anchor';
var childs = anc[i].childNodes[0].cloneNode(true);
span.appendChild(childs);
if(anc[i].href.match(/^opera:config/i)) {
var span2 = document.createElement('span');
span2.className = 'opera-config-path';
span2.appendChild(document.createTextNode("(" + anc[i].href + ")"));
span.appendChild(span2);
}
anc[i].parentNode.replaceChild(span, anc[i]);
i--;
a--;
}
}
}