Comment éviter que les numéros de téléphone ne soient convertis dans les liens de Skype?

Sur les ordinateurs Windows équipés de Skype , il a tendance à convertir tous les numéros formatés par téléphone sur les liens Skype afin que vous puissiez cliquer dessus afin de faire un appel sur Skype.

La question est de savoir comment empêchez-vous que cela se produise pour un certain nombre sur la page?

Essayez de ne pas afficher les nombres en tant que texte unique. Au lieu de

<span>888-555-1212</span> 

essayer

 <span>888-</span><span>555-1212</span> 

Et il va désactiver Skype

Mettre à jour

Cette réponse n'est plus exacte – voir la réponse de Daniel Byrne pour plus d'informations.


En utilisant uniquement CSS, il peut être supprimé en remplaçant les styles utilisés par Skype. Essayez d'ajouter ces deux lignes à votre feuille de style:

 span.skype_pnh_container {display:none !important;} span.skype_pnh_print_container {display:inline !important;} 

Skype a accepté d'ajouter une chaîne de nombres générée au hasard à la fin de leur balise d'extension, de sorte que la réponse ci-dessus de Groo n'est plus entièrement exacte. Pour sélectionner correctement toutes les balises Skype sur une page, utilisez les sélecteurs curinga CSS3 tels que:

 span[class^='skype_pnh_container'] {display:none !important;} span[class^='skype_pnh_print_container'] {display:inline !important;} 

L'opérateur ^= provoque un sélecteur d'attribut sur les éléments mach qui ont une classe contenant une valeur qui COMMENCE AVEC 'skype_pnh_container' et 'skype_pnh_print_container'

<meta name="SKYPE_TOOLBAR" content="SKYPE_TOOLBAR_PARSER_COMPATIBLE" />

La solution officielle consiste à ajouter la méta-image suivante à la section principale de votre page Web. Cela empêchera Skype de procéder à un reformatage sur les numéros de téléphone.

 <meta name="SKYPE_TOOLBAR" content="SKYPE_TOOLBAR_PARSER_COMPATIBLE" /> 

EDIT: Désolé, je viens de découvrir que IE9 a des problèmes avec cette solution, car elle ne supporte pas les traits simples.

Il existe une solution alternative à ce problème:

Vous pouvez utiliser un caractère de trait hybride ( &shy; ) dans le numéro de téléphone pour résoudre le problème. Par exemple, compte tenu du nombre

 <span>0664 111 222 3</span> 

Passer à

 <span>0664&shy; 111 222 3</span> 

et soyez heureux 🙂

Je viens juste de constater que si vous utilisez le nouveau protocole tel HTML5, il bloque l'apparition de la brochette Skype:

 <a href="tel:+18001234567">1 800 123 4567</a> 

J'ai vu sur l'interweb beaucoup de solutions possibles solutions javascript, méta-balises, css et peut-être que j'ai trouvé un hack effectivement fonctionner pour mes sites Web, j'ai testé sur certains ordinateurs et ça fonctionne et je pense que cela fonctionnera jusqu'à ce que skype ne modifie pas quelque chose Dans leur code.

Je regardais ce que Skype fait exactement sur nos pages, et cela crée une certaine portée autour des numéros de téléphone, comme vous l'avez déjà dit, mais il ajoute même une étiquette à la fin du document, juste après l'étiquette fermée du corps.

Et là j'ai vu l'astuce! Juste avant cet objet, il existe une balise de configuration:

 <span id="skype_highlighting_settings" display="none" autoextractnumbers="1"></span> 

Ceci est ajouté dynamiquement par le plugin! Mais ici, la solution devient évidente, pour finalement arrêter Skype déranger avec votre conception et éviter de changer de numéro de téléphone, la solution est d'insérer très tôt dans le document la balise suivante:

 <span id="skype_highlighting_settings" display="none" autoextractnumbers="0"></span> 

Notez le autoextractnumbers = "0", voici l'astuce. Le document ne sera pas validé de toute façon avec cette balise car il n'y a pas d'attribut "autoextractnumbers" mais j'ai remarqué que cela fonctionne même s'il est commenté:

 <!-- <span id="skype_highlighting_settings" display="none" autoextractnumbers="0"></span> --> 

Et c'est tout! Profitez de vos pages Web gratuitement à partir de plugins désordonnés! Votre page Web sera toujours validée correctement. J'espère que ça marchera pour toi aussi! J'ai testé sur un couple d'ordinateurs 3 navigateurs différents et 2 versions de skype différentes, pour l'instant cela fonctionne pour moi, laissez-moi savoir si cela fonctionne aussi pour vous et si cela fonctionne, partagez-le 🙂

J'ai ajouté un espace dans le premier terme du numéro.

Au lieu de (888) 222-3333, je suis entré (888) 222-3333

Accordé: peut sembler étrange, mais ça marche et c'est simple.

J'ai ajouté un trait d'union dans une portée avant le numéro, puis j'ai configuré l'affichage: aucun sur le style d'extension, qui a fonctionné.

  <span class="anti-skype-hyphen">-<span>01273 200 *** 

Tout ce que vous devez faire est d'assurer que votre sélecteur CSS soit plus spécifique que le sélecteur utilisé par Skype. Dans la feuille de style skype actuelle, ils utilisent:

 span.skype_pnh_container span.skype_pnh_highlighting_inactive_common span.skype_pnh_text_span {...} 

Vous devrez ajouter une classe supplémentaire – votre propre contexte de site Web – à ce sélecteur, c'est-à-dire

 .myclass span.skype_pnh_container span.skype_pnh_highlighting_inactive_common span.skype_pnh_text_span {...} 

Essaye ça. Il supprime des espaces dans le numéro de téléphone avec une portée invisible + le char de l'espace d'origine. Donc, Skype ne peut pas comprendre, c'est un numéro et notre numéro de téléphone aimé reste le même 🙂 J'ai dû utiliser cette approche car je laisse habituellement l'administrateur de contenu modifier les numéros de téléphone à son intention. Je ne pourrais donc pas utiliser un code codé dur dans javascript. Bien sûr, votre balisage devrait ressembler à <span class="phone_number">your number with some spaces inside it<span> .

 $(document).ready(function() { if ($(".phone_number").length>0) { $(".phone_number").each(function() { $(this).html($(this).html().replace(/\s/g,"<span style=\"display:none\">_</span>&nbsp;")); }); } }); 

Vous pouvez également laisser le numéro seul et l'enlever avec JS.

 jQuery(document).ready(function(){jQuery('.skype_pnh_container').parent().html('(555) 222 - 3333'); jQuery('.skype_pnh_container').remove()} 

Il est plus difficile à faire en HTML normal, mais Skype ne supprime pas le conteneur parent, alors placez le numéro dans quelque chose avec un ID, vous pouvez faire un "getElementById" sur celui-ci, définissez innerHTML sur le numéro de téléphone.

document.getElementById('phoneNumberContainer').innerHTML='(555) 222 - 4444';

Si vous utilisez PhoneGap sur iOS, cela peut être un problème UIWebView (séparé de Skype).

La ligne suivante corrige le problème si vous ne voulez pas les liens automatiques générés dans UIWebView:

 self.viewController.webView.dataDetectorTypes = UIDataDetectorTypeNone; 

Dans AppDelegate.m in -(BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions