|
|
||
IRC: irc://irc.opera.com/japanese <--Opera 日本語ユーザのためのIRCチャンネル。
上のがつながらない場合は irc://irc.se.opera.com/japanese
設定を解説する際に非常に便利なopera:config。リンクを張れば直に設定項目が現れてしまいますからね。Operaユーザーの強い味方である事は確かです。
しかしOperaユーザー以外にとって、これは邪魔な事この上ないリンク。Operaユーザーの占める割合を考えると全体のUsabilityを下げているのは間違いないでしょう。……というわけで、operaプロトコルへのリンクをOperaブラウザ以外で無効化する為の管理者用JavaScriptを作ると良いんじゃないかな、と思うのです。
てことで早速作ってみたよ。
このページを,operaでアクセスしたときとIE,Firefoxでアクセスしてみたときとを比べてみてください。たぶん、opera:configとUse Thumbnails in Tab Tooltipsという文字がFirefox,IEだとリンクにならないはず。
ページに埋め込んであるスクリプトは、
window.onload = function () {
if(!window.opera) {
if(document.body)
searchKeyword(document.getElementsByTagName('body')[0]);
}
}
function searchKeyword(n){
if(n.nodeType == 1 && n.tagName.toUpperCase() == 'A' && (n.href.match(/^opera:/))) {
var r = document.createElement('SPAN');
r.className = 'opera_config';
for(var j = 0; j < n.childNodes.length; j++)
r.appendChild(n.childNodes[j].cloneNode(true));
n.parentNode.replaceChild(r, n);
} else if(n.hasChildNodes()) {
for(var i = 0; i < n.childNodes.length; i++)
searchKeyword(n.childNodes[i]);
}
return;
}
。大部分がtemp_hさんが作られた,disableHatenaKey.jsで出来ています。Thanks, temp_h.
ついでにopera:で始まるリンクを全て無効に。対象となるのは、opera:/button,opera:/edit/Searchなど。
んーあとはユーザーエージェントの部分だな。これだとMark as {Mozilla,IE}だとリンクにならないからね。どうにかできるのかな。
ユーザーエージェントで判断じゃなくて、window.operaで判断するのに変更。
で、もっとシンプルなスクリプトでいけるということなので
window.onload = function () {
if(!window.opera) {
if(document.body)
removeHref();
}
}
function removeHref(){
var anc = document.getElementsByTagName('a');
for(var i=0;i<anc.length;i++) {
if(anc[i].href.match(/^opera:/i)) {
anc[i].removeAttribute('href');
}
}
}
こっちを使うことにする。
Thanks, usopion, Kuruma and takef
span要素で置き換えたほうが、リンクがなくなって閲覧者の混乱はさけられると思います。