Mobile Safariで電話番号リンクを無効にする方法は?


363

iPhoneのSafariは、電話番号に表示される数字列のリンクを自動的に作成します。IPアドレスを含むWebページを作成していますが、Safariはそれを電話番号リンクに変換しています。この動作をページ全体またはページ上の要素に対して無効にすることはできますか?


回答:


714

Safari HTMLリファレンスによると、これは正しいことのようです。

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

これを無効にしても電話リンクが必要な場合は、「tel」URIスキームを引き続き使用できます。

こちらはアップル社の開発者ライブラリの関連ページです。


1
これは単に機能しません。とにかく、iOS 4.3.1のWebアプリには対応していません。
mhenry1384 2011年


2
これは、私が現在使用している5.1.1などの最近のバージョンでも機能することに注意してください。
デイブスタイン

4
これはケースバイケースで適用できますか?たとえば、電話番号として解釈したくないページ上の1つの数字文字列が、電話番号として自動的に解釈したいページ上の他の6つの動作を維持しますか?
jpostdesign

3
これは、2019年のIOS 12で完全に正常に動作します!👍🏻
マットKomarnicki

38

特定の要素の電話解析の外観を無効にするために、このCSSはトリックを行うようです:

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

最初のルールはクリックを無効にし、2番目のルールはスタイリングを処理します。


5
特定の場所でのスタイリング/フォーマットを制限したい場合に最適なソリューションです。
mikevoermans 2016年

36

ゼロ幅のジョイナーを使用しています &zwj;

それを電話番号のどこかに置くだけでうまくいきます。BrowserStack(および電子メールのLitmus)でテストされています。


1
これでうまくいきます。最初の数字の前に追加します。
vinboxx 2016年

1
最高のソリューション!
El cero 2017

私はHTMLメール署名を作成しましたが、これはiOS 10メールが(電話以外の)番号を電話番号として誤って検出するのを防ぐのに役立つ唯一のソリューションでした。
Nick

1
きちんとしたソリューション。iPhone 6Sに取り組んで罰金(+)/ iOSの9
アインTohvri

1
これは、<?xml-stylesheet>ディレクティブを使用してHTMLページを生成するXMLファイルをロードするようにMobile Safariに依頼する場合にのみ実行可能なソリューションです。Mobile Safariは、ソースがHTML(!)でなくても、元のXMLの長い数字を「tel:」リンクに変換します。
Mark Reinhold 2018年

33

私も同じ問題を抱えていました。UIWebViewで、データ検出器をオフにできるプロパティを見つけました。

self.webView.dataDetectorTypes = UIDataDetectorTypeNone;

ついに、私にとってうまくいった解決策。もちろん、これはUIWebViewを使用して独自のObjective-Cアプリケーションを作成しているユーザーにのみ機能し、Safariアプリを使用していません。ありがとう!!
iandotkelly 2011

29

これを追加してください、それがあなたが探しているものだと思います:

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

10

Webviewのソリューション!

PhoneGap-iPhone / PhoneGap-iOSアプリケーションの場合、プロジェクトのアプリケーションデリゲートに以下を追加することにより、電話番号の検出を無効にできます。

// ...

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

    return [ super webViewDidStartLoad:theWebView ];
}

// ...

ソース:PhoneGap-iOSで電話検出を無効にします。


Badger110のコメントを読む前に、awoodlandのコードを実装するために行った。そこで、AppDelegate.mで、どこかでこれを見たことがあると思います。私は周りを見回し始め、xibファイルでチェックボックスを見つけ、私は魔法の何かを発見したと思います。私はこの輝かしい発見を投稿するために戻ってきて、badger110のコメントがずっとそこにあったのを見つけます。TL DR:最初にコメントを読んでください、ナックルヘッド。
Tina D.

8

ページの一部で電話番号の検出を無効にするには、影響を受けるテキストをhref = "#"でアンカータグで囲みます。これを行うと、モバイルSafariとUIWebViewはそのままにします。

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

1
metaタグが機能しなかったので、これは私がやったことです。ただし、<a href="javascript:;">URLの変更による副作用を防ぐために、おそらくそれを行う方が良いでしょう。
JustJohn

これは私にとってHTMLメールで機能します。すべてではなく1つの電話番号のみを無効にしたかった style = "text-decoration:none;"を追加しました。残りのテキストと一致する色のタグに追加します。カーソルのスタイルも変更できます。
Simon Darby

6

私が解決策を見つけたと思います:数値を<label>要素の中に入れます。他のタグは試していません<div>が、telephone=no属性があってもホーム画面でアクティブのままにしておきます。

以前のコメントからメタタグが機能したことは明らかのようですが、何らかの理由で、少なくともいくつかの条件下では、iOSの新しいバージョンでは機能しません。4.0.1を実行しています。


ハイボブ。HTMLコードの例を挿入する場合は、コードをバッククォートで囲む必要があり<like this>ます。(Stack OverflowはMarkdownと呼ばれるフォーマット言語を使用しています。)それに応じて回答を編集します。
ポールD.ウェイト

それは最終的には機能しませんでした-アプリをリロードすると、リンクのハイライトが戻ってきました。私は#電話番号の前に文字を追加することに頼りました:Appleのドキュメント「Apple URL Scheme Reference」によると:「具体的には、URLに*または#文字が含まれている場合、電話アプリケーションは対応する電話番号。"
BobFromBris 2010

それが機能しないので、あなたはあなたの答えを取り除くべきです。あなた自身が上記のコメントで認めているように。
mhenry1384 2011年

@ボブ素敵なきれいなヒント。メールのHTMLに問題がありました。ラベルのラッピングはうまく
いきました

6

<a>ラベルを値javascript: void(0)として使用することもできhrefます。

次の例:
<a href="javascript: void(0)">+44 456 77 89 87</a>


これは、デフォルトのiOSスタイルとアクションを引き続き使用する必要があるときに、特定の要素を無視するのに役立ちました。
greatKing 2017

4

私も同じ問題を抱えていましたが、iPad Webアプリ上でした。

残念ながら、どちらも...

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

また...

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

...働いた。

しかし、ここに3つの醜いハックがあります。

  • 数字の「0」を文字「O」に置き換えます
  • 数字の「1」を文字「l」に置き換える
  • 意味のないスパンを挿入します。例: 555.5<span>5</span>5.5555

使用するフォントによっては、最初の2つはほとんど目立ちません。後者には明らかに余分なコードが含まれますが、ユーザーには見えません。

Kludgyは確かにハッキングします。データから動的にコードを生成している場合、またはこの方法でデータを汚染できない場合は、おそらく実行できません。

しかし、ピンチで十分です。


2
「使用するフォントによっては、最初の2つはほとんど目立ちません」ユーザーがiOSでコンテンツ読み取るように設定していない限り。その後、それはかなり目立つでしょう。
ポールD.ウェイト2014年

1
アクセシビリティ(上記のテキストリーダーのような)の場合、またはユーザーが電話アプリにコピー/貼り付けした場合、これは単に問題を引き起こします。また、一般に、YelpやGoogleなどのスパイダーがビジネスをインデックスに登録していて、間違った電話番号を取得している場合、それは良くありません。
ジョナ2016年

4

私は、iPad Safariが電話番号リンクに変えることを主張したABN(オーストラリアのビジネス番号)を持っていました。どの提案も役に立たなかった。私の解決策は、数字の間にimgタグを置くことでした。

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

このクラスは、imgタグの目的を文書化するためにのみ存在します。

iPad 1(4.3.1)およびiPad 2(4.3.3)で動作します。


3
残念ながら、Internet Explorerではこれらの壊れた画像アイコンが表示されます。追加するとwidth="0" height="0"役立ちますが、それでも1つのピクセルが表示されます。
Geert、2011

1
画像は必要ありません。番号の中にHTMLを挿入してください:<p>電話ではない:112 <span> 34 </ span> 56 </ p>
Radek Pech

@Geert、セットline-heightfont-sizeゼロに。
HelpNeeder

4

私の経験は他の人が述べたのと同じです。メタタグ...

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

... WebサイトがMobile Safariで(つまり、クロムを使用して)実行されている場合は機能しますが、Webアプリとして実行すると機能を停止します(つまり、ホーム画面に保存され、クロムなしで実行されます)。

私の理想的ではない解決策は、値を入力フィールドに挿入することです...

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

境界線がなしに設定されているにもかかわらず、iOSはフィールドの上にマルチピクセルの灰色のバーをレンダリングするため、これは理想的とは言えません。しかし、それはリンクとして数を見るよりはましです。


3

私はこれを自分でテストしたところ、確かにエレガントな解決策ではありませんが、機能することがわかりました。電話番号に空のスパンを挿入すると、データ検出機能がそれをリンクに変換しなくなります。

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

1
これは私が最終的に使用した修正でもあり、非常にうまく機能し、非常に簡単です。
Holger

2
故意の悪いHTMLを生成するので、これは良い答えではありません。
ステファンフリードリヒ2015年

2

<meta name = "format-detection" content = "telephone=no"> メールでは機能しません。準備しているHTMLがメール用である場合、メタタグは無視されます。

対象が電子メールの場合は、次の方法で問題を解決できますが、うまくいきません。

リンクまたは自動フォーマットを回避したいHTMLの例:

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

そして、魔法を起こすCSS:

@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";}
}

欠点:iPad / iPhoneポートレート/ランドスケープの各コンボに対してメディアクエリが必要になる場合がある



1

Sencha Touchアプリと同じ問題が<meta name="format-detection" content="telephone=no">、アプリのindex.htmlのメタタグ()で解決されました。


1

Mobile Safari以外にも機能する私が使用するトリックは、HTMLエスケープコードと電話番号の小さなマークアップを使用することです。これにより、ブラウザが電話番号を「特定」することがより困難になります。

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

1

私にもこの問題があります。Safariやその他のモバイルブラウザーはVAT IDを電話番号に変換します。したがって、ページ全体(またはサイト)ではなく、単一の要素でそれを回避するためのクリーンなメソッドが必要です。
私は見つけた可能な解決策を共有しています。それは最適ではありませんが、それでもかなり実行可能です。tel:リンクになりたくない番号の中に&#8288;Word-Joinerの非表示文字であるHTMLエンティティを挿入ます。VAT ID私はに応じて数字の異なるグループ間でそれを置くことを選んだために私は例えば、いくつかの意味の場所にこの文字を入れることで(の少なくとも一種、ウェル)よりセマンティックに滞在しようとしたその形式イタリア語VATのために私は0613605&#8288;048&#8288;8記述:0613605⁠048⁠8でレンダリングされ、電話番号に変換されません。


1

別のオプションは、電話番号のハイフンを文字に置き換えることです(U + 2011 'Unicode Non-Breaking Hyphen')。


1

しばらくこれに戸惑いましたが、ようやくわかりました。私たちはサイトを更新し、リンクに変換する数値とそうでない数値がありました。<fieldset>内にある場合、数値はリンクに変換されないことがわかります。明らかに、ほとんどの状況に適したソリューションではありませんが、場合によってはそれが適切なソリューションになります。


0

この回答は、2012年6月13日の時点ですべてに優先します。

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

色をテキストに一致するものに変更します。テキストの装飾により下線が削除され、ポインターイベントによりブラウザーのリンクのように表示されなくなります(ポインターは手に変わりません)。

これは、iOSおよびブラウザでのHTMLメールに最適です。


1
これは色を明示的に設定するように見えます。つまり、何があっても灰色になります。
ベンザド2012年

「ポインターイベントは、ブラウザーのリンクのように表示されるのを防ぎます」—をサポートするブラウザーではpointer-events、確かに。ただし、ユーザーがIE 10で HTML電子メールを表示している場合は、効果がありません
ポールD.ウェイト2014年

問題は、メールアドレスではなく、電話番号の検出を抑制することです。
jww 2013

0

リンクを削除したいのはなぜですか。このオプションを使用すると、非常にユーザーフレンドリーになります。

自動編集を削除するだけで、リンクを機能させたい場合は、これをCSSに追加するだけです...

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

5
まあ、元のポスターについては言えませんが、私の場合、Safariは実際には電話番号ではない電話を推測しています。それらは財務データです
Irae Carvalho 14

1
問題は、電話番号のリンク検出についてであり、編集ではありません。
jww 2014

場合によっては、電話番号を編集するオプションを呼び出すなどの電話をかける以外の操作を実行する必要があるWebサイトに電話番号がある場合や、クリックして別の場所にドラッグする機能がある場合があります。
Nosajimiki

彼はIPアドレスを電話番号としてリンクさせたくありません
jahller

0

数値をテキストの個別のブロックに分割する

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

1
これが回避策であることを言及したいと思うかもしれません。
Daan

-16

別の解決策は、IP番号のイメージを使用することです。


4
これはそんな神の考えではないと思います。回答を削除してください。なぜなら、画像のテキストをコピー/ペーストすることはできず、(コンテンツやフォントスタイルを変更した場合は)簡単に保守できず、バリアフリーでもないからです。
stephanfriedrich 2015年

@stephanfriedrichが言ったように、このソリューションは問題よりも最悪である可能性があります。これは役に立たないか、使用できないでしょう
kaosmos

まったく役に立たない。
Luca Antonelli、
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.