驯服 Windows 10 Edge 浏览器中的自动电话号码功能

2024-04-18

即使系统上没有安装电话应用程序,Windows 10 的边缘浏览器似乎也会检测电话号码。

它将电话号码格式化为带有下划线的蓝色,即使它只是在某个地方的纯文本中(在某些背景上很难看),而且它还检测到例如增值税号码就像电话号码一样。

那么作为网站管理员我们如何控制它:

  • 它如何呈现检测到的东西(我想 MSFT 为这些东西发明了他们自己的 CSS 选择器?)

  • 我们如何关闭检测

最好是只针对该浏览器的东西,而不是冒险给其他人搞乱事情或将非标准的东西添加到其他有效的代码中。

EDIT:

  • 根据在 Windows Phone 的 IE11 中完成的方式关闭检测的建议方法并不适用于我的所有测试。元标记失败,非标准 html 属性似乎确实有效。

  • 我查看了 Edge 中的检查内容,在我看来,那些检测到的项目的计算 CSS 是人们期望在未检测到的情况下看到的内容(即计算的 CSS 是正常颜色且没有下划线),建议控制其渲染方式的机会很小。

EDIT:

测试用例 1:元标记(失败)

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta charset="UTF-8" />
    <!-- test -->
    <meta name="format-detection" content="telephone=no" />
  </head>
  <body>
    <p>text VAT BE 0123.456.789 text </p>
    <p>text +32 11 222 333 text</p>
  </body>
</html>

测试用例2:非标准html属性(有效)

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta charset="UTF-8" />
  </head>
  <body>
    <p x-ms-format-detection="none">text VAT BE 0123.456.789 text </p>
    <p>text +32 11 222 333 text</p>
  </body>
</html>

显然,电话号码检测是在 Internet Explorer 11 中引入的,但在桌面上并未引入。

以下是控制它的方法,摘自这篇 MS 文章:电话号码格式识别 https://msdn.microsoft.com/en-us/library/dn265018%28v=vs.85%29.aspx

  • 要禁用元素(及其子元素)的行为,请设置x-ms-format-detection属性为“无”。
  • 要禁用网页的行为,请使用 meta 元素:

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

  • 要启用元素(及其子元素)的行为,请设置x-ms-format-detection属性为“电话”或“全部”。

  • 要使用 JavaScript 有选择地控制行为,请使用setAttribute改变的值x-ms-format-detection关联元素或其父元素的属性。 (请注意,这需要在 DOM 中渲染元素或父元素之前完成;不支持动态更改。)

如果我正确理解这篇文章,如果在浏览器级别禁用电话检测,x-ms-format-detection属性(或元标记)将被忽略。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

驯服 Windows 10 Edge 浏览器中的自动电话号码功能 的相关文章

随机推荐