LoginSignup
10
9

More than 5 years have passed since last update.

外部リンクにtarget=”_blank”と別窓アイコンを付ける(jQuery)

Posted at

動機

HTMLでaタグを書くとき、外部リンクと内部リンクを区別してtarget="_blank"など付与するのは面倒くさい。
jQueryで解決する先人の例 (http://web-pc.net/jquery007) があったので、これを応用しようと考えた。

そこで、hrefで指定するURLを目印に付与するようにしてみた。

やりたいこと

*あらかじめ、外部リンクと内部リンクは、"http://" ありなしで区別しておく
・外部リンク: target="_blank" & 目印アイコンを付与
・内部リンク: 修飾なし

コード

<!-- External Resources -->
<link href="//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet">
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<!-- Main JS -->
<script>
    $("a[href^='http://']").attr("target","_blank");
    $('a[target="_blank"]').after(' <i class="fa fa-external-link"></i>');
</script>

<!-- Example HTML-->
<ul>
<li><a href="example.html">内部リンク</a></li>
<li><a href="http://google.com">外部リンク</a></li>
<li><a href="//google.com">外部リンク(修飾なし)</a></li>
</ul>

結果

<ul>
<li><a href="example.html">内部リンク</a></li>
<li><a href="http://google.com" target="_blank" >外部リンク</a><i class="fa fa-external-link"></i></li>
<li><a href="//google.com">外部リンク(修飾なし)</a></li>
</ul>

20141207.PNG

2番目のリンクのみ、target="_blank"と目印が付きました。
hrefに"http://" がない1番目・3番目のリンクには、target="_blank"や目印は付きません。

参考

外部リンクにtarget=”_blank”とclassを付与するjQueryで別窓アイコンを付ける - ホームページ制作やリニューアル印刷物デザインなら大阪のWPC
http://web-pc.net/jquery007

少しのコードで実装可能な20のjQuery小技集 | Webクリエイターボックス
http://www.webcreatorbox.com/tech/jquery-tips20/

[まとめ] Font Awesomeのイケてる使い方をまとめました # sakainote
http://sakainote.com/?p=1820

10
9
3

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
10
9