- ベストアンサー
onbeforeunloadとaタグのhref属性について
- onbeforeunloadイベントとaタグのhref属性について解説します。
- 「教えて!」をクリックするとfoo()関数が実行されますが、「goo」をクリックするとonbeforeunloadイベントが発生し、alert実行後にfoo()関数が実行されます。
- javascriptでhref属性を指定した場合、実際のリンク先に遷移せずにJavaScriptの処理が実行されるため、クリックしたときの挙動が異なります。
- みんなの回答 (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)
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> とかするといいかもしれません。