iPhone上的Safari会自动为出现在电话号码中的数字字符串创建链接。我正在编写一个包含IP地址的网页,Safari将其转换为电话号码链接。是否可以为整个页面或页面上的某个元素禁用此行为?


当前回答

我有一个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)。

其他回答

为什么要删除链接,这使得它非常用户友好的选择。

如果你只是想删除自动编辑,但保持链接工作,只需添加到您的CSS…

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

要禁用特定元素的电话解析外观,下面的CSS似乎可以做到:

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

第一条规则禁止单击,第二条规则负责样式化。

有一段时间我真的很困惑,但最终明白了。我们对网站进行了更新,有些数字转换为链接,有些则没有。事实证明,如果数字在<fieldset>中,它们将不会被转换为链接。显然不是大多数情况下的正确解决方案,但在某些情况下是正确的。

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中的电话检测。

我使用零宽度细木工&zwj;

把这句话放在电话号码里就行了。在BrowserStack(和Litmus用于电子邮件)中测试。