iPadのSafariでタップした瞬間の選択文字列が取得したいです。
mousedown
イベントは、文字列選択が解除されてから発火します。
そこでtouchstart
イベントを監視することにしました。
するとChromeで見慣れない警告が出てきました。
リンク先のPassive event listeners - Chrome Platform Statusの、さらにリンク先の EventListenerOptions/explainer.md at gh-pages · WICG/EventListenerOptions · GitHub に詳しい説明がありました。
タブレットのタッチ操作はスクロールにも使います。
touchstart
イベントを監視するとpreventDefaultされるかもしれないので、イベントハンドラーが完了するまでスクロールが開始できません。
数百ms掛かると、ユーザー体験を明らかに悪くします。
そこでaddEventListnerに{passive:true}
オプションを渡します。
{passive:true}
はイベントハンドラーがpreventDefaultを呼ばないことを保証します。
ブラウザはpreventDefaultが呼ばれないことがわかっているので、イベントハンドラーの終了を待つことなくヌルヌルスクロールできるのでした。