Tíquete #21824

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

: 2010-05-20 21:32 Última Atualização: 2010-06-12 00:02

Relator:
Dono:
Tipo:
Estado:
Fechado
Prioridade:
7
Gravidade:
7
Resolução:
Nenhum
Arquivo:
Nenhum

Details

例えば、チャネル上の発言中の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
Comentário

なんとなくわかった。

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

2010-06-04 00:10 Updated by: ishikawa
  • Estado Update from Aberto to Fechado
  • Ticket Close date is changed to 2010-06-04 00:10
Comentário

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

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

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

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

2010-06-11 23:58 Updated by: ishikawa
  • Estado Update from Fechado to Aberto
2010-06-12 00:00 Updated by: ishikawa
Comentário

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

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

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

2010-06-12 00:02 Updated by: ishikawa
  • Estado Update from Aberto to Fechado
  • Ticket Close date is changed to 2010-06-12 00:02

Attachment File List

No attachments

Editar

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