• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:onbeforeunload と aタグの href 属性について)

onbeforeunloadとaタグのhref属性について

このQ&Aのポイント
  • onbeforeunloadイベントとaタグのhref属性について解説します。
  • 「教えて!」をクリックするとfoo()関数が実行されますが、「goo」をクリックするとonbeforeunloadイベントが発生し、alert実行後にfoo()関数が実行されます。
  • javascriptでhref属性を指定した場合、実際のリンク先に遷移せずにJavaScriptの処理が実行されるため、クリックしたときの挙動が異なります。

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

onbeforeunloadは、ブラウザが閉じられたり、現在のページから移動したときに実行されます。 リンクでhref="#"を指定した場合は、自ページを意味しますが そうでない場合は、別ページへの移動ということになるためそのような動作になるのではないでしょうか <a>は基本的にはリンクを表すものですから、単に関数を実行したい場合は、ボタンを使うのがいいと思います。 <button type="button" onclick="foo()">goo</button> 文字列のままで、リンクのようなアンダーバーが必要というのであれば <span style="text-decoration:underline" onclick="foo()">goo</span>とか <span onclick="foo()"><u>goo</u></span> とかするといいかもしれません。

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

onbeforeunloadは、ブラウザが閉じられたり、現在のページから移動したときに実行されます。 リンクでhref="#"を指定した場合は、次ページを意味しますが そうでない場合は、別ページへの移動ということになるためそのような動作になるのではないでしょうか <a>は基本的にはリンクを表すものですから、単に関数を実行したい場合は、ボタンを使うのがいいと思います。 <button type="button" onclick="foo()">goo</button> 文字列のままで、リンクのようなアンダーバーが必要というのであれば <span style="text-decoration:underline" onclick="foo()">goo</span>とか <span onclick="foo()"><u>goo</u></span> とかするといいかもしれません。

関連するQ&A