LoginSignup
0
1

More than 5 years have passed since last update.

【コピペ用】JSで外部ドメインのリンクに強制的に `target="_blank"` を付け、ついでに `rel="noopener"` もつける

Posted at

外部で更新しているメディアサイトで、文中のリンクが別タブで開いたり開かなかったりして気になったので、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++
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1