IPhone上のSafariは、電話番号に表示される数字列へのリンクを自動的に作成します。私はIPアドレスを含むWebページを書いています、そしてSafariはそれを電話番号のリンクに変えています。ページ全体またはページ上の要素に対してこの動作を無効にすることは可能ですか?
Safari HTMLリファレンス によると、これは正しいことのようです。
<meta name="format-detection" content="telephone=no">
これを無効にしても電話リンクが必要な場合は、「tel」URIスキームを使用できます。
これがAppleのDeveloper Libraryの 関連ページ です。
特定の要素の電話解析外観を無効にするために、このCSSはトリックをするようです:
.element { pointer-events: none; }
.element > a { text-decoration:none; color:inherit; }
最初のルールはクリックを無効にし、2番目のルールはスタイルを管理します。
私は同じ問題を抱えていました。私はあなたがデータディテクタをオフにすることを可能にするUIWebView上のプロパティを見つけました。
self.webView.dataDetectorTypes = UIDataDetectorTypeNone;
これを追加し、私はそれがあなたが探しているものだと思います:
<meta name = "format-detection" content = "telephone=no">
幅0のジョイナ‍
を使います
電話番号のどこかに置くだけで、うまくいきます。 BrowserStack(およびLitmus for Eメール)でテスト済み。
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 ];
}
// ...
source: PhoneGap-iOSの電話検出を無効にする 。
ページの一部で電話番号の検出を無効にするには、影響を受けるテキストをhref = "#"のアンカータグで囲みます。あなたがこれをするならば、モバイルSafariとUIWebViewはそれをそのままにするべきです。
<a href="#"> 1234567 </a>
私は解決策を見つけたと思います:<label>
要素の中に数を入れてください。他のタグを試したことはありませんが、<div>
属性があっても、telephone=no
はホーム画面上でアクティブにしたままにしました。
メタタグが機能したことは以前のコメントから明らかですが、何らかの理由でiOSの新しいバージョンでは、少なくともいくつかの条件下では壊れています。私は4.0.1を実行しています。
href
値としてjavascript: void(0)
とともに<a>
ラベルを使用することもできます。
次のような例<a href="javascript: void(0)">+44 456 77 89 87</a>
私は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)で動作します。
私は同じ問題を抱えていたが、iPadのWebアプリで。
残念ながら、どちらも...
<meta name = "format-detection" content = "telephone=no">
また….
0 = 0
9 = 9
...働いた。
しかし、これは3つの醜いハックです。
555.5<span>5</span>5.5555
使用するフォントによっては、最初の2つはほとんど目立ちません。後者は明らかに余計なコードを含みますが、ユーザーには見えません。
Kludgyは確かにハックしており、データから動的にコードを生成している場合、またはこの方法でデータを汚染することができない場合は、おそらく実行不可能です。
しかし、ピンチで十分です。
私の経験は他の人が述べたのと同じです。メタタグ...
<meta name = "format-detection" content = "telephone=no">
... WebサイトがMobile Safariで実行されている(つまり、クロムあり)場合は機能しますが、Webアプリケーションとして実行されている場合は機能しません(つまりホーム画面に保存され、クロムなしで実行されます)。
私の理想とは言えない解決策は、値を入力フィールドに挿入することです...
<input type="text" readonly="readonly" style="border:none;" value="3105551212">
境界線がnoneに設定されているにもかかわらず、iOSではフィールドの上にマルチピクセルのグレーのバーが表示されるため、理想的とは言えません。しかし、それはリンクとして数を見るよりも優れています。
<meta name = "format-detection" content = "telephone=no">
はEメールには機能しません。準備しているHTMLがEメール用のものである場合、メタタグは無視されます。
あなたがターゲットにしているものが電子メールであるならば、ここにya'llのためのもう一つの醜いけれども働く解決策があります:
リンクされたり自動フォーマットされたりするのを避けたい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の縦向き/横向きのコンボそれぞれについてメディアクエリを必要とするかもしれません。
私はこれを自分でテストし、それがうまくいくことを確かめましたが、それは確かに優雅な解決策ではありません。電話番号に空のスパンを挿入すると、データディテクタがそれをリンクに変えることを防ぎます。
(604) 555<span></span> -4321
私が使っているトリックは、Mobile Safariだけではなく、HTMLエスケープコードと電話番号のちょっとしたマークアップを使うことです。これはブラウザが電話番号を「識別」することをより困難にする。
Phone: 1-800<span>-</span>620<span>-</span>3803
Sencha Touchアプリの同じ問題が、アプリのindex.htmlのメタタグ(<meta name="format-detection" content="telephone=no">
)で解決されました。
あなたはそれらをHTMLエンティティとしてエンコードすることを試みることができます:
0 = 0
9 = 9
私にもこの問題があります。Safariや他のモバイルブラウザはVAT IDを電話番号に変換します。したがって、ページ全体(またはサイト)ではなく、単一の要素でそれを回避するためのクリーンなメソッドが必要です。
私が見つけた可能な解決策を共有していますが、それは準最適ですが、それでもかなり実行可能です:番号の中にtel:
リンクになりたくない⁠
Word-Joinerの不可視文字 であるHTMLエンティティ。私はこの文字を何らかの意味の場所に置くことで、より意味的なものにしようとしました(少なくとも、ある種の)。 VAT IDについては、 その形式 に従って異なる数字のグループの間に配置することを選択しました。したがって、イタリアのVATについては次のように書きました:0613605⁠048⁠8
電話番号に変換されません。
私はしばらくこれに混乱していましたが、ついにそれを考え出しました。私たちは私たちのサイトを更新し、いくつかの数字がリンクに変換されるようにしましたが、そうでないものもありました。 <fieldset>に含まれている場合、その番号はリンクに変換されません。ほとんどの場合、明らかに正しい解決方法ではありませんが、場合によっては正しい解決方法になります。
もう1つのオプションは、電話番号のハイフンを‑
という文字で置き換えることです(U + 2011 'Unicode Non-Breaking Hyphen')。
番号をテキストの別々のブロックに分割します
301 <div style="display:inline-block">441</div> 3909
この回答は、2012年6月13日現在のものすべてに勝っています。
<a href="#" style="color: #666666;
text-decoration: none;
pointer-events: none;">
Boca Raton, FL 33487
</a>
色をあなたのテキストに合うものに変えなさい、テキスト装飾は下線を取り除き、ポインタイベントはブラウザのリンクのようにそれが見られるのを止める(ポインタは手に変わらない)
これは、iOSおよびブラウザでのHTML電子メールに最適です。
リンクを削除したいのはなぜでしょうか。このオプションを選択すると非常にユーザーフレンドリーになります。
単純に自動編集を削除したいが、リンクを有効にしておきたい場合は、これをCSSに追加するだけです。
a[href^=tel] {
color: inherit;
text-decoration:inherit;
}