要素内のリンクをキャッチする
重要性: 5
id="contents"
の要素内のすべてのリンクが、ユーザに本当に離れたいかを尋ねるようにしてください。そして、答えが No の場合は遷移しません。
このようになります:
詳細:
- 要素内の HTML はロードされているかもしれないし、いつでも動的に再作成されるかもしれません。そのため、すべてのリンクを見つけてハンドラを配置することはできません。イベントの移譲を使ってください。
- コンテンツはネストされたタグを持っている場合があります。リンクも同じです。
<a href=".."><i>...</i></a>
.
これはイベント移譲パターンを大いに活用してものです。
実際には、尋ねる代わりに、訪問者がどこから離れたかに関する情報を保存する "ログ"要求をサーバーに送信できます。 または、コンテンツを読み込んでページに表示することもできます(許可されている場合)。
私たちに必要なことは、contents.onclick
をキャッチし、ユーザの確認するために confirm
を使うことです。良いアイデアは URL に対して link.href
の代わりに、link.getAttribute('href')
を使うことです。詳細は解決策を見てください。