删除Microsoft Edge的电话号码样式


95

我注意到新的Microsoft Edge浏览器在检测到电话号码时会覆盖我的样式:

<span class="phone">(123)123-1234</span>

请参见此jsfiddle(必须使用Microsoft Edge:P打开)。

这种行为干扰了网站的设计,并且令人讨厌。当然,这似乎是IE的后继者的特征:/

如何覆盖或禁用此功能,以便我的网站用户看不到它?


我希望这实际上不是恶意软件引起的...
karns 2015年

检查加载项(没有Edge),但是某些加载项导致了IE-s中的行为...
sinisake 2015年

7
我今天刚刚在Twitter上对此发表了评论:mobile.twitter.com/scunliffe/status/631484565492625409至少就我目前所知,直到Microsoft撤销了这个错误的决定,您需要添加<meta name="format-detection" content="telephone=no"/>到要摆脱的每个页面中这个的。:-(
scunliffe

1
它还适用于纬度/经度数字,例如145.1231321
behelit

1
另外,突出显示的数字格式会随用户PC的区域设置(“家庭位置”)而变化,因此这将对所有用户造成不同的影响!这意味着当您测试页面时,尽管使用相同的浏览器,最终用户实际上可能会看到一些不同的东西:docs.microsoft.com/en-us/previous-versions/windows/…–
SharpC

Answers:


171

您可以通过在页面标题中添加此meta标签来摆脱它。

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

Microsoft在此标签上的文档

希望有一种更好的方法可以在不使页面膨胀的情况下全局关闭此功能。或者最好还是默认禁用此功能。


好答案!请问您是否可以为此添加指向文档的链接?
卡恩斯

9
愚蠢的设计。如果有人愿意这样做。至少,您可以允许使用“ detect-phone = true”之类的属性使其成为可选属性,因为有时候,如果您的webapp不需要这样做的话,也无需允许它这样做……
Miguel

59

如果您不想按照所选答案建议禁用整个页面,则可以将以下属性添加到特定标签

<p x-ms-format-detection="none">

参考:https : //docs.microsoft.com/zh-cn/previous-versions/windows/internet-explorer/ie-developer/dev-guides/dn265018(v=vs.85)#controlling-phone-number-detection


9
我知道这是一个旧答案,但是对于任何查找此内容的人:我必须将其添加到父标签(例如<div>,它比标签或您用来显示电话的任何内容都高)数)。
Dortimer '18

对答案和Debasertron的评论+1。在评论中,似乎还需要是一个块级父级-我尝试了一个span,但没有用,但是div很好。
Masala

31

上面的答案非常有效,但是会禁用单击呼叫电话号码的功能(如果您正在构建响应站点,这是一个主要问题)。我发现更好的解决方法是使电话号码成为链接。例:

<a href="tel:888-888-8888">(888) 888-8888</a>

然后,这将使您可以根据需要设置“链接”的样式,并且CSS中的“ a”样式将覆盖电话号码上的Edge和iPhone样式。唯一的问题是它使电话号码成为所有设备的链接,但是我发现这并不是问题,因为几乎每个设备都包含某种点击通话功能或应用程序。


1
在我眼中最好的方法!
conceptdeluxe

尽管问题是“如何禁用”,但我必须同意,如果您要创建一个考虑到手机使用的响应式站点,这将是一个更好的响应。
JStevens '19

3

我已经遇到了这个问题,但是用例略有不同:突出显示的数字不是电话号码,因此我不需要任何特殊的格式。

例如,您可能有类似以下内容:

<div>The current date/time: May 08 2017 10:44:58 GMT Daylight Time</div>

对于我*,Edge将转换08 2017 10为电话号码链接。谢谢,Edge!

我发现您可以通过inline-block在字符串中间插入不可见元素来解决此问题:

.notel{
  display:inline-block;
  height:0px;
  width:0px;
}
<span class="phone">(763)219-5222</span>
<div>The current date/time: May 08 2017 10:44:58 GMT Daylight Time</div>

<br>
<span class="phone">(763)2<span class="notel"></span>19-5222</span>
<div>The current date/time: May 08 2<span class="notel"></span>017 10:44:58 GMT Daylight Time</div>

我看不到这对您的电话号码是否有效,因为在任何一种情况下都不会突出显示。您可能需要微调跨度的位置。

顺便说一句,您可以执行此操作是您不应该将命令从网页复制到终端的众多原因之一:

span{
display:inline-block;
height: 0px;
width: 0px;
overflow:hidden;
}
textarea{
  width: 300px;
  height:50px;
}
<div>echo "HELLO" <span>&& wreck this machine</span></div><div>echo "WORLD"</div>

<textarea ></textarea>
<div>
Select, copy and paste above commands into the textarea.
</div>

*我认为Edge突出显示的数字是区域性的。您的jsfiddle没有为我突出显示,但我在英国。这里似乎突出显示了以0开头的数字。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.