Ticket #21824

webkit UI のリンクの扱いがなにかおかしい

Date d'ouverture: 2010-05-20 21:32 Dernière mise à jour: 2010-06-12 00:02

Rapporteur:
Propriétaire:
Type:
État:
Atteints
Priorité:
7
Sévérité:
7
Résolution:
Aucun
Fichier:
Aucun

Détails

例えば、チャネル上の発言中のURLとか電話番号的な部分はリンクになるわけだけど、 ここの部分を長押ししたときの挙動が変わってしまっている(ブラウザ側のメニューが出てこない)

おそらくiscrollの影響だと思われるのでなにがおきてるのか確認して、 なんとかする。

Ticket History (3/6 Histories)

2010-05-20 21:32 Updated by: ishikawa
  • New Ticket "webkit UI のリンクの扱いがなにかおかしい" created
2010-05-22 04:09 Updated by: ishikawa
Commentaire

なんとなくわかった。

メッセージ中の a tag には ontouchstart のイベントハンドラが直接書かれているけど、このあたりが iscroll に持っていかれて実行されてないので、nonreferrer 用の書き戻し処理が行われないために、 ブラウザのメニューが出てこないようだ。

2010-06-04 00:10 Updated by: ishikawa
  • État Update from Ouvert to Atteints
  • Ticket Close date is changed to 2010-06-04 00:10
Commentaire

iscroll のtouchStart イベントハンドラの中で ブラウザ画面全体のスクロールを抑制するために preventDefault() してしまっていた。

なので、リンク長押しがブラウザ側で検出できず、ブラウザのメニューが出てこない結果に。

で、画面スクロール抑制のためであれば touchmove ハンドラで preventDefault() してやればいいはずなので、 そっちに移した。

(ということで iscoll を若干いじっちゃったよ?)

2010-06-11 23:58 Updated by: ishikawa
  • État Update from Atteints to Ouvert
2010-06-12 00:00 Updated by: ishikawa
Commentaire

preventDefault() を touchmove に移すと別の副作用がでまくるので戻した。

で、android で tap がきかなくなるのは tap したときのセンサーの感度が高すぎるのか tap しただけで touchmove event が発生してしまって結果 touchend で エミュっている click event が発生しなくなるから。

ってことで、touchmove event 内で 移動の判定を甘くすることで解決した。

2010-06-12 00:02 Updated by: ishikawa
  • État Update from Ouvert to Atteints
  • Ticket Close date is changed to 2010-06-12 00:02

Attachment File List

No attachments

Modifier

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » Connexion