Answers:
根据Safari HTML参考,这似乎是正确的做法:
<meta name="format-detection" content="telephone=no">
如果禁用此功能,但仍需要电话链接,则仍可以使用“ tel” URI方案。
这是Apple开发人员库中的相关页面。
要禁用特定元素的电话解析外观,此CSS似乎可以解决问题:
.element { pointer-events: none; }
.element > a { text-decoration:none; color:inherit; }
第一个规则禁用点击,第二个规则负责样式。
我使用零宽度的细木工 ‍
只需将其放在电话号码中,即可使用。在BrowserStack(和Litmus用于电子邮件)中进行了测试。
对于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 ];
}
// ...
要在部分页面上禁用电话号码检测,请使用href =“#”将受影响的文本包装在锚标记中。如果这样做,移动Safari和UIWebView应该不要理会它。
<a href="#"> 1234567 </a>
meta
标记无效。但是,最好这样做是<a href="javascript:;">
为了防止URL更改带来副作用。
认为我已经找到了解决方案:将数字放在<label>
元素中。尚未尝试任何其他标签,但<div>
即使在使用telephone=no
属性的情况下,也使其在主屏幕上处于活动状态。
从早期的评论看,显然meta标签确实起作用了,但是由于某些原因,至少在某些情况下,在更高版本的iOS中已损坏。我正在运行4.0.1。
<like this>
。(Stack Overflow使用一种称为Markdown的格式语言。)我将相应地编辑您的答案。
#
在电话号码的前面添加一个字符:根据Apple文档“ Apple URL方案参考”:“具体来说,如果URL包含*或#字符,则Phone应用程序不会尝试拨打相应的字符。电话号码。”
我遇到了同样的问题,但是在iPad Web应用程序上。
不幸的是,两个...
<meta name = "format-detection" content = "telephone=no">
也不...
0 = 0
9 = 9
...有效。
但是,这是三个丑陋的骇客:
555.5<span>5</span>5.5555
根据使用的字体,前两个几乎不明显。后者显然涉及多余的代码,但对用户不可见。
Kludgy可以肯定地进行黑客攻击,如果您是根据数据动态生成代码,或者无法以这种方式污染数据,则可能不可行。
但是,足够紧要关头。
我有一个ABN(澳大利亚业务编号),iPad Safari坚持将其转换为电话号码链接。这些建议都没有帮助。我的解决方案是将img标签放在数字之间。
ABN 98<img class="PreventSafariFromTurningIntoLink" /> 009<img /> 675<img /> 709
该类仅存在以记录img标签的用途。
适用于iPad 1(4.3.1)和iPad 2(4.3.3)。
width="0" height="0"
帮助,但仍显示单个像素。
line-height
和font-size
为零。
我的经验与其他人的经验相同。元标记...
<meta name = "format-detection" content = "telephone=no">
...在网站在Mobile Safari中运行(即使用chrome)时有效,但是在以webapp身份运行时(即保存到主屏幕且未使用chrome运行)时停止工作。
我不太理想的解决方案是将值插入输入字段...
<input type="text" readonly="readonly" style="border:none;" value="3105551212">
这是不理想的,因为尽管没有设置边框,iOS仍会在字段上方渲染多像素灰色条。但是,总比将数字视为链接要好。
我自己对此进行了测试,发现它可以工作,尽管它当然不是一个很好的解决方案。在电话号码中插入空跨度将防止数据检测器将其转换为链接。
(604) 555<span></span> -4321
<meta name = "format-detection" content = "telephone=no">
不适用于电子邮件:如果您准备的HTML用于电子邮件,则元标记将被忽略。
如果您的目标是电子邮件,那么以下是适用于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纵向/横向组合使用媒体查询
您可以尝试将它们编码为HTML实体:
0 = 0
9 = 9
我也有这个问题:Safari和其他移动浏览器将VAT ID转换为电话号码。因此,我希望使用一种干净的方法来避免在单个元素上而不是整个页面(或网站)上使用它。
我正在分享一个发现的可能解决方案,它不是最优的,但仍然是可行的:我将不想成为tel:
链接的数字放在⁠
HTML实体中,它是Word-Joiner不可见字符。我试图通过将这个字符放在某个有意义的位置上来保持语义上(至少是某种意义上),例如,对于增值税ID,我选择了根据其格式将其放在不同的数字组之间,因此对于意大利增值税写道:0613605⁠048⁠8
会在06136050488中呈现,并且不会转换为电话号码。
截至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;
}
另一种解决方案是使用IP地址的图片