suit: Telefonnummern für Smartphones formatieren

Beitrag lesen

Hmmm ..., damit hast du aber in Desktop-Browsern ja genau das Problem, welches du 2) vermeiden wolltest.

Das ist aber das geringere übel und man kann es dem Kunden schlüssig erklären indem man einfach Kurz das Telefon rausfängt :)

Ich sehe die "Lösung" eher in "UA Sniffing", um zwischen Mobile und Desktop zu differenzieren und die Links entsprechend zu generieren, bzw. zu de-/aktivieren.

"Mobile" und "Desktop" zu unterscheiden ist absoluter Unsinn - ist ein Netbook jetzt ein Desktop- oder ein Mobilgerät? Ist ein Surface-Tablet jetzt ein Notebook oder ein Tablet? Ist es Mobil oder nicht? Kann man damit telefonieren oder nicht?

Die einzig halbwegs vernünftige Lösung ist zu prüfen, ob ein bestimmtes Protokoll registriert ist oder nicht - im Internet Explorer ist das sehr unzuverlässig über die protocolLong-Eigenschaft möglich - allerdings lieft das stellenweise auch für nicht registrierte aber bekannte Protokolle ein Ergebnis, z.B. wenn das Schema registriert und wieder entfernt wurde, kennt er dessen langen Namen aber es gibt keine Zuordnung mehr zu einer Anwendung.

Unter Firefox kann man das recht einfach prüfen: man erstellt ein iframe-Element mit src und dem zu testenden Schema und wertet dessen Namen aus (try/catch) - wenn dieser "NS_ERROR_UNKNOWN_PROTOCOL" ist, zeigt Firefox grade die "Firefox weiß nicht, wie diese Adresse geöffnet werden soll [...]"-Seite an - das funktioniert recht zuverlässig.

Für Opera und Safari wird das wohl ähnlich funktionieren, die zeigen beide ebenfalls eine Fehlerseite die sich ggf. auswerten lässt - hab' ich grade nicht getestet.

Chrome selbst tut hingegen nichts, der ignoriert den Request einfach - bei Eingabe direkt in die Adresszeile wird eine Google-Suche ausgeführt.

Die Lösung kann also so aussehen:

Es gibt Links mit dem tel-Schema die durch JavaScript nachträglich wieder entfernt werden, wenn das tel-Schema _explizit_ nicht registriert ist - in anderen Fällen "ist registriert",  "weiß nicht", "kann nicht ermittelt werden" oder "nicht sicher" bleiben sie stehen und führen ggf. zu Fehlerseiten.