Dans le Navigateur Android lien n'exécute pas toujours onClick causant de se concentrer à la place
Je suis en train de programmer un très standard JS comportement d'un lien à l'aide d'un HREF
onClick gestionnaire, et je suis confronté à un problème étrange causée par ce que je crois être focus/mode tactile comportement sur Android.
Parfois, quand je clique sur le lien, au lieu de l'exécution de l'action, il devient tout simplement choisi/concentré, avec juste un rectangle de focus ou même aussi avec un rempli rectangle de focus (sélectionné par opposition à juste concentré?).
Le pseudo-code de droit est maintenant
<a href="#" onClick="toggleDivBelowToShowHide(); return false;">go</a>
J'ai essayé de faire quelque chose comme:
<a href="#" onTouchStart="toggleDivBelowToShowHide(); return false;">go</a>
Mais j'ai toujours le même problème agaçant de temps en temps.
- Afin de clarifier certaines découvertes récentes: je peux certainement dire que il ne fonctionne PAS lorsque l'élément a le focus rectangle et que je clique sur un élément. Dans ce cas, l'élément devient alors "sélectionné" (brièvement pleinement s'allume en bleu) et seulement cela au lieu de faire de l'action. Est-il quelque chose comme "onSelect"?
- Comme dans, exécute automatiquement votre fonction lorsque sa concentré?
- Eh bien, il semble être déjà concentré à ce point... j'ai envie à l'utilisateur de simplement être en mesure de cliquer sur l'élément et de l'étendre. Il ressemble à +/- élargissement de l'élément.
- Le lien est concentré/sélectionné? Ou peut-être juste une partie du texte du lien? (Peut être un peu difficile de tester avec juste "go".) Comme: si je clique légèrement à droite de votre nom ci-dessus, puis faites-la glisser vers la gauche, je sélectionne le texte de votre nom, lettre par lettre.
- J'ai aussi ce problème - parfois, android ne veut tout simplement pas à suivre les liens. Dans mon application, cependant, ceci peut être corrigé si je supprime tous les preventDefault() gestionnaires... Qui, malheureusement, les sauts de l'application un peu, mais au moins les liens de travail?
- Je peux contourner ce - la surcharge des évènements touchstart et touchend à feu simulé mousedown / mouseup événements provoque les liens de recevoir ceux-ci, et si un peu de logique, ont été ajoutés à touchend aussi le feu d'un événement de clic, cela devrait fonctionner.
Vous devez vous connecter pour publier un commentaire.
Essayez d'activer le Javascript sur la webview.
Dans l'activité qui détient la webview, essayez ceci...
J'ai eu même problème, mais compris que c'était parce que je n'ai pas activé Javascript.
Essayer de se débarrasser de la
href
attribut et voir si cela aide. Par exemple, cela fonctionne lors de l'affichage avec laWebView
composant:Je me demande si c'est lié à la
onclick
-- ai-je raison de supposer que chaque maintenant et puis en cliquant sur tout lien de ne pas la suivre? Pour moi, cela semble lié à la façon dont vous touchez l'écran (ou la façon dont elle est interprétée), comme peut-être en cliquant sur prochaine pour le lien et en le faisant glisser un peu, plutôt que de cliquer sur le lien?(Si mon hypothèse est correcte, alors ce pourrait être un matériel défectueux: peut-être vous pouvez essayer sur un autre appareil? Ou peut-être qu'il ne se produit sur un côté de la liaison si l'écran n'est pas aligné bien, et alors il pourrait y avoir certains logiciels de décalage, on peut changer?)
onclick
?)Essayez d'insérer ce "pilote" dans votre page de code, et laissez-nous savoir si cela fonctionne . . . Il semble fonctionner sur mon site qui avait le même problème:
Maintenant, il n'est pas à 100% à un script complet - multi-touch-serait sans doute un peu bancale, et si vous avez créé une interface en fonction de toucher des commandes, il ne génère pas de ceux qui dans cette version. Mais, il fixe mon lien-cliquant problème.
Gre - ps - c'est à l'aide de jQuery. Si vous avez besoin d'un non-version jQuery, vous pouvez probablement juste de supprimer le
new jQuery.Event
de lamouseHandler()
fonction (en d'autres termes, l'origine de l'événement:var fixed = event;
), et je crois que la plupart des navigateurs serait ok. Je ne suis pas exactement un js compatibilité expert si.PPS - Testé avec Android 1.6
PPP - Dû modifier le script pour permettre à un seuil de périphériques réels ont eu quelques problèmes avec un événement de déplacement de feu au cours de la presse. Probablement pas idéal; si quelqu'un veut le carillon sur une meilleure façon de faire cela, je serais intéressé à entendre...
Récemment je suis tombé sur exactement le même problème. J'ai été en utilisant le onclick sur un bouton. Parfois, il n'a pas d'exécuter le javascript. La chose qui a fonctionné pour moi a été que activer le javascript avant de charger une url dans la webview