BLOG ENTRY

リンクにtarget=”_blank”を使わないでjavascriptで外部リンクにする

face厳密DTD や XHTML 1.1などで非推奨(というか廃止?)タグとされている<a>タグのtarget="_blank"。


この仕様には賛否両論らしいですが、個人的には外部サイトへのリンクの場合は外部リンクのほうがユーザーには便利だと思うんですけどね(普段ネットサーフィンしてて特にそう思う)


外部リンクをtarget="_blank"を使わないでjavascriptを使った代替コーディングを行います。
サンプルページ

  1. window.onload= function() {
  2.     var a_all = document.getElementsByTagName("a");
  3.    
  4.     for (i = 0; i <a_all.length; i++) {
  5.         a_all[i].target = "_blank";
  6.     }
  7. };
  8. </script>
  9. <a href="http://www.google.co.jp">Googleに外部リンク</a>



はい終わり。


でもこれだとページ内のリンクが全部外部リンクになっちゃうので、たとえばこんな感じで外部リンクと内部リンクを分けてみる。
※差異点はname属性を追加したこととgetElementsByNameに変更したことのみです。
サンプルページ

  1. window.onload= function() {
  2.     var a_all = document.getElementsByName("outside");
  3.    
  4.     for (i = 0; i <a_all.length; i++) {
  5.         a_all[i].target = "_blank";
  6.     }
  7. };
  8. </script>
  9. <a href="http://www.google.co.jp">Googleに通常リンク</a><br />
  10. <a href="http://www.google.co.jp" name="outside">Googleに外部リンク</a>

※IEとOperaの場合、getElementsByNameでname属性だけでなくid属性も取得対象となってしまうので注意。



終わり。

WRITE COMMENT


(required)


(required)


(required)

MENU