Empêcher le navigateur Iphone de transformer les nombres en liens

15

J'écris une page très simple qui est censée être consultée sur les appareils mobiles. En le visualisant dans le simulateur d'iphone, j'ai remarqué que le navigateur de l'iphone transforme automatiquement n'importe quelle chaîne de chiffres en lien, soi-disant pour la composer directement.

Le problème est - il y a une tonne de numéros sur ma page qui ressemblent à des numéros de téléphone mais qui ne le sont pas. Existe-t-il un moyen de dire au navigateur iPhone de laisser ces numéros seuls?

Sorcy
la source

Réponses:

22

Très mauvaise implémentation de la part d'Apple (j'entends que cela se produit également sur l'iPad, où cela n'a aucun sens), mais il y a un correctif:

<meta name="format-detection" content="telephone=no" />

Source: http://www.darowski.com/tracesofinspiration/2009/03/31/stop-iphone-from-incorrectly-auto-linking-phone-numbers/

L'un des commentaires sur cette page suggère également l'utilisation du trait d'union controversé ( &shy;) pour empêcher la liaison automatique d'un numéro spécifique (afin que le navigateur puisse toujours lier automatiquement d'autres numéros sur la page).


Information additionnelle

Si vous souhaitez lier certains numéros mais pas d'autres, j'utiliserais personnellement la format-detectionbalise Meta pour désactiver les numéros de liaison automatique, puis lierais explicitement ceux qui sont des numéros de téléphone:

<div itemscope itemtype="http://schema.org/LocalBusiness">
  <h1 itemprop="name">Foo Co.</h1>
  <dl>
    <dt>Phone</dt>
    <dd><span itemprop="telephone"><a
      href="<?php echo ($isMobile? 'tel' : 'callto') ?>:+15555555555">
      555-555-5555</a>
    </span></dd>
    <dt>Client ID</dt>
    <dd>1234567890</dd>
</div>

L'extrait PHP est là pour échanger le tel:schéma callto:s'il ne s'agit pas d'un navigateur mobile. De cette façon, Skype et d'autres programmes VoIP de bureau peuvent être déclenchés lorsque le lien est cliqué.

Lèse majesté
la source
C'est une excellente solution, mais que se passe-t-il s'il n'y a que certains nombres que vous ne voulez pas convertir en liens? Existe-t-il un moyen de le faire uniquement par classe ou par attributs?
Dan
2
@Dan: Il n'y a vraiment aucun moyen idéal de le faire au-delà de l'utilisation &shy;pour diviser le nombre. Ce que je ferais, c'est de désactiver la liaison automatique des numéros d'iOS Safari, puis d'indiquer explicitement quels numéros sont des numéros de téléphone réels à l'aide du balisage sémantique.
Lèse majesté
Oui, c'est probablement la meilleure solution pour mon cas particulier. Merci!
Dan