素人がプログラミングを勉強していたブログ

プログラミング、セキュリティ、英語、Webなどのブログ since 2008

連絡先: すかいぷ:javascripter_  か javascripter あっと tsukkun.net skypeのほうがいいです

外部リンクにtarget="_blank"をつける

var $x=function(xpath){
var xpathR=document.evaluate(xpath,document,null,7,null);
var result=new Array;
for(var i=0;i<xpathR.snapshotLength;i++){
result.push(xpathR.snapshotItem(i));
}
return result;
}

var locationHost=location.href.match(/^https?:\/\/.*?\//);
var links=$x('//a[@target="_blank"]');
links.forEach(
function(link){
link.removeAttribute('target')
}
)

var externalLink=$x('//a[@href and not(starts-with(@href,"'+locationHost+'") or starts-with(@href,"#") or starts-with(@href,"/"))]');
externalLink.forEach(
function(link){
link.setAttribute('target','_blank');
}
)

XPathをふんだんに使ってみたんだけど、パフォーマンスはあまりよくなさそう。

はてなダイアリーサブドメイン形式じゃないから期待する結果にはならない。