Windows 10的边缘浏览器似乎检测到电话号码,即使系统上没有安装电话应用程序。
即使它是纯文本(某些背景下的丑陋),也可以用下划线格式化蓝色的电话号码,而且它可以检测到例如。增值税号码,就像他们是电话号码一样。
那么我们如何控制它作为网站管理员来:
>它如何呈现检测到的东西(我想MSFT发明了自己的CSS选择器这个东西?)
>我们如何关闭检测
最好有一些只是针对那个浏览器的东西,而不是把别人的东西搞错,或者添加非标准的东西到其他有效的代码。
编辑:
>建议的方法,根据在IE11中为windows手机完成的方式关闭检测在我的所有测试中都不起作用。元标记失败,非标准html属性似乎工作。
>我看过边缘的检查事物,在我看来,检测到的项目的计算CSS是没有检测到的(即,计算的CSS是正常颜色,没有下划线)表明控制如何呈现的机会很小。
编辑:
测试用例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文章:Phone number format recognition
>要禁用元素(及其子元素)的行为,请将x-ms-format-detection属性设置为“none”。
要禁用网页的行为,请使用元素:
< Meta name =“format-detection”content =“telephone = no”/>
>要启用元素(及其子元素)的行为,请将x-ms-format-detection属性设置为“phone”或“all”。
>要使用JavaScript有选择地控制行为,请使用setAttribute来更改关联元素或其父元素的x-ms-format-detection属性的值。 (请注意,在DOM或DOM中渲染元素之前需要完成此操作;不支持动态更改。)