webkit UI のリンクの扱いがなにかおかしい
なんとなくわかった。
メッセージ中の a tag には ontouchstart のイベントハンドラが直接書かれているけど、このあたりが iscroll に持っていかれて実行されてないので、nonreferrer 用の書き戻し処理が行われないために、 ブラウザのメニューが出てこないようだ。
iscroll のtouchStart イベントハンドラの中で ブラウザ画面全体のスクロールを抑制するために preventDefault() してしまっていた。
なので、リンク長押しがブラウザ側で検出できず、ブラウザのメニューが出てこない結果に。
で、画面スクロール抑制のためであれば touchmove ハンドラで preventDefault() してやればいいはずなので、 そっちに移した。
(ということで iscoll を若干いじっちゃったよ?)
preventDefault() を touchmove に移すと別の副作用がでまくるので戻した。
で、android で tap がきかなくなるのは tap したときのセンサーの感度が高すぎるのか tap しただけで touchmove event が発生してしまって結果 touchend で エミュっている click event が発生しなくなるから。
ってことで、touchmove event 内で 移動の判定を甘くすることで解決した。
例えば、チャネル上の発言中のURLとか電話番号的な部分はリンクになるわけだけど、 ここの部分を長押ししたときの挙動が変わってしまっている(ブラウザ側のメニューが出てこない)
おそらくiscrollの影響だと思われるのでなにがおきてるのか確認して、 なんとかする。