JavaScriptの動作に関係なくページが移動する | デザインってオモシロイ -MdN Design Interactive-
【サイトリニューアル!】新サイトはこちらMdNについて


Webデザインには、あなたの知らない「落とし穴」がたくさん。大きなものから小さなものまで、それが及ぼす影響はさまざまだ。カンペキだと思っているあなたのサイトも、実はすでに暗い穴の中かも……。

危険度の説明


危険度3
JavaScriptの動作に関係なくページが移動する
JavaScript

マウスクリックからJavaScriptを動作させたいとき、「a href="#"onclick="windowopen();"」といった空のリンクを設定してはいないだろうか? この場合、このa要素をクリックするとJavaScriptは動作するものの、Webページがスクロールしている場合は、ページの先頭に移動してしまう。a要素は、この要素でくくられた内容をクリックすることでhrefの値を参照するため、「#」を記述しているとそれを参照してしまうのである。

a要素を使ってJavaScriptを動作させる場合は「a href="javascript:windowopen();"」と記述しよう。こうすることでクリック自体がJavaScriptを参照する。イベントハンドラを使った記述の場合は、a要素を使わず、別の要素に「onclick」を組み込めばよい【1】。ただし、これではマウスカーソルのアイコンが指先アイコンに変化しないため、クリックできることを視覚的に伝えることができなくなるだろう【2】。

【1】a要素でない要素にイベントハンドラを用いてJavaScriptを動作させることもできる
【1】a要素でない要素にイベントハンドラを用いてJavaScriptを動作させることもできる

【2】マウスカーソルが指のマークにならないのでクリックできるかどうか、わかりづらい
【2】マウスカーソルが指のマークにならないのでクリックできるかどうか、わかりづらい



文=DtoP
Profile/企画段階からのサイト構築、CGI、デザイン、コーディングやFlashコンテンツ制作、携帯向けサイトなどWebサービスを日々追求しております。www.dtop.jp/


(※本文中、及びキャプション内で使用している「<」、「>」は、全角になります。ご注意ください。)
【落とし穴一覧】へ戻る
twitter facebook このエントリーをはてなブックマークに追加 RSS
【サイトリニューアル!】新サイトはこちらMdNについて

この連載のすべての記事

アクセスランキング

8.30-9.5

MdN BOOKS|デザインの本

Pick upコンテンツ

現在