55 votes

Désactiver la loupe de mise en évidence du texte en cas de maintien du doigt sur Mobile Safari / Webkit

J'ai quelques éléments dans mon site Web pour iPhone qui ne contiennent pas de texte mais qui nécessitent que l'utilisateur clique et maintienne la pression sur eux (DIVs). Cela fait apparaître la boucle/curseur de mise en évidence/édition du texte, ce qui est vraiment gênant.

Je sais qu'il existe une règle CSS permettant de supprimer la boîte noire qui s'affiche sur les éléments cliquables lorsqu'on les touche. Existe-t-il une règle similaire pour désactiver la loupe de texte ?

0 votes

Le correctif Cordova ne fonctionne plus dans iOS 15.1. Voir github.com/apache/cordova-ios/issues/1216

50voto

3n. Points 796

Je viens de recevoir une réponse du service d'assistance du centre des développeurs. J'avais besoin d'ajouter cette règle CSS :

-webkit-user-select: none;

2 votes

Cela ne fonctionne pas dans l'application Phonegap, j'ai appliqué cela sur chaque div dans mon html.

0 votes

Fonctionnant dans Chrome pour iPhone, ce qui était ce dont j'avais besoin (la version par défaut de FullCalendar longPressDelay sélectionnait également des parties du calendrier).

7voto

Pham Van Vung Points 204

Ajoutez ceci au CSS

body {
-webkit-touch-callout: none;                /* prevent callout to copy image, etc when tap to hold */
-webkit-text-size-adjust: none;             /* prevent webkit from resizing text to fit */
-webkit-user-select: none;                  /* prevent copy paste, to allow, change 'none' to 'text' */}

6voto

vitralyoz Points 15

Utilisez ces règles CSS :

-webkit-touch-callout: none;
-webkit-user-select: none; /* Disable selection/copy in UIWebView */

5voto

Jay from BKK Points 39

Cette fonction est également utile pour protéger un contenu que vous ne voulez pas copier ou enregistrer, comme une image :

#yourdiv img {-webkit-touch-callout: none; }

19 votes

J'espère que vous voulez dire par protéger le faire légèrement plus encombrant à copier.

5voto

andrwct Points 241

Cela a résolu le problème pour moi, en JS :

document.getElementsByTagName("body")[0].addEventListener("touchstart",
 function(e) { e.returnValue = false });

Ça semble contourner ce que le système d'exploitation a mis en place pour attraper le toucher.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X