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>
这样不会误识别,真需要打电话也不耽误。