外部で更新しているメディアサイトで、文中のリンクが別タブで開いたり開かなかったりして気になったので、JSによって外部ドメインのリンクは強制的に別タブで開かせるようにしました。
ただ、target="_blank"
はそのままだとあぶないらしいです。( e.g. target="_blank"には気をつけよう)
rel="noopener noreferrer"
をつけよう!という流れなので、併せて rel属性 にも対応しました。
/*
* 外部ドメインのリンクは強制的に `target="_blank"` を付け、
* さらに `rel="noopener noreferrer"` もつける
*/
var i, links, linksLength;
links = document.links;
i = 0;
linksLength = links.length;
while (i < linksLength) {
if (links[i].hostname !== window.location.hostname) {
links[i].target = '_blank';
links[i].rel = 'noopener noreferrer';
}
i++;
}
// ES6 で書く場合
let i, links, linksLength
links = document.links
i = 0
linksLength = links.length
while (i < linksLength) {
if (links[i].hostname !== window.location.hostname) {
links[i].target = '_blank'
links[i].rel = 'noopener noreferrer'
}
i++
}
# coffee-script で書く場合
links = document.links
i = 0
linksLength = links.length
while i < linksLength
if links[i].hostname != window.location.hostname
links[i].target = '_blank'
links[i].rel = 'noopener noreferrer'
i++