リンクのクリック時にJavaScriptを実行する - リンクのonClickの実装 - JavaScript

リンクがクリックされたタイミングでJavaScriptを実行するコードを紹介します。

概要

ユーザーがリンクをクリックしたタイミングでJavaScriptを実行したいことがあります。
AタグのhrefにJavaScriptの処理を記述する方法と、onclick属性に実行したいJavaScriptの処理を記述する方式があります。
Aタグのonclick属性に実行したいJavaScriptを記述した場合、リンククリック後ページが遷移してしまいます。リンククリック時のページ遷移を防ぐためにhref属性に"#"を指定するか、"javascript:void(0);"を指定します。
補足
href属性に"javascript:void(0);"指定した場合、モバイルのWebブラウザでは「リンクが無効です」のメッセージが表示される場合があります。モバイルでの利用も想定している場合は、href属性に "#" を指定すると回避できますが、リンククリック時にページの上部に遷移してしまう問題が発生します。対処法としてはonclick 属性ではなくhref属性にJavaScriptの処理内容を記述します。

実装例1 : href属性に記述する方法

下記のHTMLファイルを作成します。
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8" />
  <title></title>
  <script language="javascript" type="text/javascript">
        function OnLinkClick() {
            target = document.getElementById("output");
            target.innerHTML = "Penguin";
            return false;
        }
  </script>
</head>
<body>
  <a href="javascript:OnLinkClick();">Exec</a><br />
  <br />
  <div id="output"></div>

</body>
</html>

解説

下記のコード部分でリンクがクリックされたときに実行するJavaScriptの関数です。
処理は"output"のIDを持つタグの要素を取得し、そのタグの内部のテキストにに"Penguin"の文字列を挿入します。
  function OnLinkClick() {
    target = document.getElementById("output");
    target.innerHTML = "Penguin";
    return false;
  }

リンク部分です。href属性に javascript:(実行するJavaScriptコード) の形式で記述します。リンクがクリックされると href内のJavaScriptコードを実行します。下記のコードでは OnLinkClick() 関数を呼び出します。
  <a href="javascript:OnLinkClick();">Exec</a><br />

実行結果

上記のHTMLファイルをWebブラウザで表示します。下図のページが表示されます。

[Exec]リンクをクリックします。画面に"Penguin" の文字列が表示されます。リンクのクリックによりJavaScriptのOnLinkClick関数が実行できたことが確認できました。

実装例2 : onclick属性に記述する方法

下記のHTMLファイルを作成します。
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8" />
  <title></title>
  <script language="javascript" type="text/javascript">
        function OnLinkClick() {
            target = document.getElementById("output");
            target.innerHTML = "Duck";
            return false;
        }
  </script>
</head>
<body>
  <a href="javascript:void(0);" onclick="OnLinkClick();">Exec (onclick)</a><br />
  <br />
  <div id="output"></div>

</body>
</html>

解説

OnLinkClick関数は先の例と同様コードです。画面に表示する文字列が "Duck" になります。

リンク部分です。href属性に javascript:void(0); を記述します。onclick 属性にリンクがクリックされたときに実行するJavaScriptのコードを記述します。リンクがクリックされると onclick内のJavaScriptコードを実行します。下記のコドでは OnLinkClick() 関数を呼び出します。
  <a href="javascript:void(0);" onclick="OnLinkClick();">Exec (onclick)</a><br />

実行結果

上記のHTMLファイルをWebブラウザで表示します。下図のページが表示されます。

[Exec]リンクをクリックします。画面に"Duck" の文字列が表示されます。リンクのクリックによりJavaScriptのOnLinkClick関数が実行できたことが確認できました。

実装例3

コード

下記のHTMLファイルを作成します。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 
  Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script language="javascript" type="text/javascript">
        function OnLinkClick() {
            target = document.getElementById("output");
            target.innerHTML = "Penguin";
            return false;
        }
    </script>
</head>
<body>
    <a href="#" onclick="OnLinkClick();">Exec1</a><br />
    <a href="javascript:void(0);" onclick="OnLinkClick();">Exec2</a><br />
    
    <br />
    <div id="output"></div>
</body>
</html>

解説

下記のコードでリンクがクリックされたときに実行するJavaScriptの関数を定義します。
処理は"output"のIDを持つタグの要素を取得し、そのタグの内部のテキストにに"Penguin"の文字列を挿入します。
 <script language="javascript" type="text/javascript">
   function OnLinkClick() {
     target = document.getElementById("output");
     target.innerHTML = "Penguin";
   }
 </script>

実行結果

上記のHTMLファイルをWebブラウザで表示します。下図の画面が表示されます。


[Exec1]または[Exec2]リンクをクリックします。"Penguin"の文字列が表示されることが確認できます。また、hrefに設定した"#"、"javascript:void(0);"により、ページの遷移が起きないことも確認できます。



このページのキーワード
  • リンクのクリック時にJSを実行する - リンクのonClickの実装
  • JavaScript リンク
  • JavaScript リンク クリック
  • avaScript 実行 リンク クリック
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
掲載日: 2011-06-14
iPentec all rights reserverd.