Frage

Safari auf dem iPhone erstellt automatisch Links für Ziffernfolgen, die an die Telefonnummern angezeigt. Ich schreibe eine Web-Seite eine IP-Adresse enthält, und Safari ist, dass in eine Telefonnummer Link drehen. Ist es möglich, dieses Verhalten für eine ganze Seite oder ein Element auf einer Seite zu deaktivieren?

War es hilfreich?

Lösung

Dies scheint das Richtige zu sein, zu tun, nach dem Safari HTML Referenz :

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

Wenn Sie diese deaktivieren, aber immer noch Telefonverbindungen möchten, können Sie immer noch das „tel“ URI-Schema verwenden.

Hier ist die entsprechende Seite bei Apple Developer Library.

Andere Tipps

Um das Telefon Parsing Aussehen für bestimmte Elemente zu deaktivieren, scheint diese CSS den Trick zu tun:

.element { pointer-events: none; }
.element > a { text-decoration:none; color:inherit; }

Die erste Regel der Klick deaktiviert, übernimmt die zweite Pflege des Styling.

Ich habe das gleiche Problem. Ich fand eine Eigenschaft auf der UIWebView, dass Sie die Datendetektoren abschalten kann.

self.webView.dataDetectorTypes = UIDataDetectorTypeNone;

Fügen Sie diese, ich glaube, es ist das, was Sie suchen:

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

Ich verwende eine Null-Breite Tischler &zwj;

Einfach, dass irgendwo in der Telefonnummer und es funktioniert für mich. Getestet in BrowserStack (und Lackmus für E-Mails).

Lösung für Webview!

Für PhoneGap-iPhone / PhoneGap-iOS-Anwendungen, können Sie Telefonnummer Erkennung deaktivieren, indem Sie die folgende Ihres Projekts Anwendung delegieren und fügte hinzu:

// ...

- (void)webViewDidStartLoad:(UIWebView *)theWebView 
{
    // disable telephone detection, basically <meta name="format-detection" content="telephone=no" />
    theWebView.dataDetectorTypes = UIDataDetectorTypeAll ^ UIDataDetectorTypePhoneNumber;

    return [ super webViewDidStartLoad:theWebView ];
}

// ...

Quelle: Disable Telefonerkennung in PhoneGap -iOS .

Um Telefonnummer Erkennung auf einen Teil einer Seite, wickeln Sie den betroffenen Text in einem Anker-Tag mit href = „#“ zu deaktivieren. Wenn Sie dies tun, mobile Safari und UIWebView sollte es in Ruhe lassen.

<a href="#"> 1234567 </a>

Denken Sie mir eine Lösung gefunden habe: die Zahl in einem <label> Elemente setzen. Haben alle anderen Tags nicht ausprobiert, aber <div> es auf dem Startbildschirm aktiv links, auch mit dem telephone=no Attribut.

Es scheint aus früheren Bemerkungen offensichtlich, dass der Meta-Tag hat funktioniert, aber aus irgendeinem Grunde hat unter den späteren Versionen von iOS gebrochen, zumindest unter bestimmten Bedingungen. Ich bin mit 4.0.1.

Sie können auch das <a> Label mit javascript: void(0) als href Wert verwenden.
Beispiel wie folgt:
<a href="javascript: void(0)">+44 456 77 89 87</a>

Ich hatte das gleiche Problem, aber auf einem iPad Web-App.

Leider weder ...

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

oder ...

&#48; = 0
&#57; = 9

... gearbeitet.

Aber, hier sind drei hässliche Hacks:

  • ersetzt die Zahl "0" mit dem Buchstaben "O"
  • Ersetzen die Nummer "1" mit dem Buchstaben "l"
  • legen Sie eine sinnlose Spanne: zum Beispiel 555.5<span>5</span>5.5555

Abhängig von der Schriftart, die Sie verwenden, sind die ersten beiden kaum spürbar. Letzteres beinhaltet offensichtlich überflüssig Code, ist aber für den Benutzer unsichtbar.

kludgy hackt sicher und wahrscheinlich nicht lebensfähig, wenn Sie Ihren Code dynamisch aus Daten sind zu erzeugen, oder wenn Sie Ihre Daten auf diese Weise nicht verschmutzen können.

Aber, ausreichend in einer Prise.

Ich hatte eine ABN (Australian Business Number), dass iPad Safari auf sich in eine Telefonnummer Link bestanden. Keiner der Vorschläge geholfen. Meine Lösung war img-Tags zwischen den Zahlen zu setzen.

ABN 98<img class="PreventSafariFromTurningIntoLink" /> 009<img /> 675<img /> 709

Die Klasse existiert nur zu dokumentieren, was die img-Tags sind für.

Arbeiten auf iPad 1 (4.3.1) und iPad 2 (4.3.3).

Meine Erfahrung ist die gleiche wie einige andere erwähnt. Der Meta-Tag ...

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

... funktioniert, wenn die Website in Mobile Safari läuft (das heißt, mit Chrom), aber nicht mehr funktioniert, wenn sie als Webapp läuft (das heißt, gespeichert zu Home-Bildschirm und läuft ohne Chrom).

Meine weniger als ideale Lösung ist, die Werte in Eingabefelder einfügen ...

<input type="text" readonly="readonly" style="border:none;" value="3105551212">

Es ist weniger als ideal, denn trotz der Grenze zu keinem gesetzt wird, macht iOS einen Multi-Pixel-grauen Balken über dem Feld. Aber, es ist besser als die Zahl als Link zu sehen.

Ich habe dies selbst getestet und festgestellt, dass es funktioniert, obwohl es sicherlich keine elegante Lösung. eine leere Spanne in der Telefonnummer einfügen wird die Datendetektoren verhindert, in eine Verbindung drehen.

(604) 555<span></span> -4321

<meta name = "format-detection" content = "telephone=no"> funktioniert nicht für E-Mails: Wenn die HTML Sie vorbereitet sind für eine E-Mail, wird der Metatag ignoriert

.

Wenn das, was Sie sind Targeting-E-Mails sind, hier ist noch eine weitere hässliche-but-Werke Lösung für YA'LL:

Beispiel einiger HTML Sie vermeiden möchten, werden verknüpft oder Auto formatiert:

will cease operations <span class='ios-avoid-format'>on June 1,
2012</span><span></span>.

Und die CSS, die die Magie passieren wird machen:

@media only screen and (device-width: 768px) and (orientation:portrait){
span.ios-date{display:none;}
span.ios-date + span:after{content:"on June 1, 2012";}
}

Der Nachteil: Sie haben eine Medienabfrage für jede der ipad / iphone Porträt benötigen / Landschaft Combos

Sie könnten versuchen, sie als HTML-Entitäten kodiert:

&#48; = 0
&#57; = 9

Die gleiche Problem in Sencha Touch app mit Meta-Tag (<meta name="format-detection" content="telephone=no">) in index.html der App gelöst.

Ein Trick, den ich, die als auf mehr funktioniert verwende nur Mobile Safari ist in HTML-Escape-Codes und einen wenig Aufschlag in der Telefonnummer zu verwenden. Dies macht es schwieriger für den Browser zu „identifizieren“, um eine Telefonnummer, d.

Phone: 1-8&#48;&#48;<span>-</span>62&#48;<span>-</span>38&#48;3

Auch ich habe dieses Problem: Safari und andere mobile Browser den MwSt-IDs in Telefonnummern verwandeln. Deshalb möchte ich eine saubere Methode, um es auf einem einzigen Element zu vermeiden, nicht die ganze Seite (oder Website).
Ich bin eine mögliche Lösung zu teilen Ich fand, ist es suboptimal, aber es ist immer noch ziemlich rentabel: Ich habe, in der Nummer Ich möchte nicht über einen tel: Link werden, die &#8288; HTML-Entität, die die Wort-Joiner unsichtbares Zeichen . Ich habe versucht, mehr semantischen (na ja, zumindest eine Art), indem dieses Zeichen in einem gewissen Sinne Stelle zu bleiben, z.B. für die USt-ID wählte ich es zwischen den verschiedenen Gruppen von Ziffer setzen nach seinem Format so ich für eine italienische Mehrwertsteuer schrieb: 0613605&#8288;048&#8288;8, die in 0613605⁠048⁠8 macht und es ist nicht in einer Telefonnummer umgewandelt

.

Ein andere Möglichkeit ist es, die Bindestriche in Ihrer Telefonnummer durch das Zeichen (U + 2011 'Unicode Non-Brechen von Hyphen')

ersetzen

war ich wirklich von dieser für eine Weile verwirrt, aber schließlich es herausgefunden. Wir haben Updates unserer Website und hatte einige Zahlen auf einen Link konvertieren und einige waren nicht. Es stellte sich heraus, dass die Zahlen nicht auf einen Link umgewandelt, wenn sie in einem

sind. Offensichtlich nicht die richtige Lösung für die meisten Umstände, aber in einigen wird es die richtige sein.

Diese Antwort übertrumpft alles wie von 2012.06.13:

<a href="#" style="color: #666666; 
                   text-decoration: none;
                   pointer-events: none;">
  Boca Raton, FL 33487
</a>

die Farbe ändern, was auch immer Sie Ihren Text übereinstimmt, entfernt Textdekoration den Unterstrich, Zeiger Ereignisse zum Anschlag in einem Browser wie ein Link eingesehen werden (Zeiger ändert sich nicht in eine Hand)

Dies ist ideal für HTML-E-Mails auf ios und Browser.

Warum würden Sie die Verknüpfung entfernen möchten, macht es sehr benutzerfreundlich th eOption zu haben.

Wenn Sie wollen einfach die automatische Bearbeitung entfernen, aber den Link weiter arbeiten diese fügen Sie einfach in Ihre CSS ...

a[href^=tel] {
 color: inherit;
 text-decoration:inherit;
}

Brechen Sie die Zahl in einzelne Textblöcke

301 <div style="display:inline-block">441</div> 3909

Eine andere Lösung wäre, ein Bild der IP-Nummer zu verwenden,

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top