暗无天日

=============>DarkSun的个人博客

TIL:WebKit 会把数字自动识别成电话链接

用过 Excel 的人都碰到过这种抓狂的事,明明输入的是数字,Excel 自作主张把它格式化成日期。WebKit 内核的移动浏览器也有这个臭毛病,看到一串数字就以为是电话号码,自动给你套上 <a href"tel:...">= 链接。版本号、订单编号、页面里随便一个数字,都可能变成可点击的超链接。

什么样的数字会被识别

WebKit 的判断条件松得很。不只是 +86 138-0000-0000 这种标准格式会被识别,很多你没想到的数字模式也能触发。

<!-- 短数字 -->
2
22
222
2222

<!-- 带连字符 -->
222-222-2222
222-222-2222
222-2222-2222

<!-- 带国家代码 -->
+1 222-222-2222
+86 222-222-2222

<!-- 带括号 -->
(+1)222-222-2222
(1)222-222-2222

<!-- 连全角破折号也能识别(你没看错) -->
222—222—2222 (em-dashes)

即使国家代码不存在(比如 +2 根本没有人用),WebKit 照样会把它识别成电话号码。

怎么关掉这个功能

在网页的 <head> 里加一行,

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

这行配置告诉浏览器,别自作主张,页面里的数字让我自己处理。

关了之后,如果某些数字真的是电话号码,可以手动用 tel: 协议标出来。

<a href="tel:+222-222-222-2222">(+222)222-222-2222</a>

这样不会误识别,真需要打电话也不耽误。

WebKit : HTML : 浏览器