Windows Phone 7/8会将地图链接和电话号码链接注入到页面DOM中。这些注入的链接还会改变DOM:它会将原始HTML文档中的空格转换为&nbsp,将换行符转换为<br>标签,然后将它们包装在锚点中。当检测地址时,浏览器似乎也有误报,它会将无序列表中的元素转换为地图链接。
如果可能的话,我想完全禁用此功能。
<!doctype html>
<html>
<head>
<!--<meta name="format-detection" content="none"/>-->
<!--<meta http-equiv="X-UA-Compatible" content="IE=10,chrome=1">-->
<!--<script type="text/javascript">-->
<!--document.execCommand('AutoUrlDetect', false, false);-->
<!--</script>-->
</head>
<body>
<div>
<p>
9380 W. Glendale Ave.<br />
Glendale, AZ 85305-9400
</p>
<!--<p x-ms-format-detection="none">-->
<p>
623-872-6700
</p>
</div>
<ul>
<li>Quicker Checkout</li>
<li>Order History/Track Your Order</li>
<li>Create an Address Book</li>
<li>Manage CLUB/Credit Cards</li>
<li>Create a Wish List</li>
<li>Write Customer Product Reviews</li>
<li>Access Your Account Anywhere</li>
</ul>
</body>
</html>
这段代码将产生以下输出: 输出图片
页面添加了以下链接:
<a href="maps:9380%20W.%20Glendale%20Ave.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Glendale,%20AZ%2085305-9400">9380 W. Glendale Ave.<br> <br>Glendale, AZ 85305-9400</a>
<a href="tel:6238726700">623-872-6700</a>
正如您所看到的,它将原始的HTML中的空格转换为 。很难看到,但它也从\n中添加了额外的<br>。
我不能简单地从源代码中删除空格和\n,因为这些数据大部分是管理内容,被许多设备和非移动站点使用。
目前我已经尝试了许多不同的组合。
<meta name="format-detection" content="none"/>
<meta name="format-detection" content="telephone=no"/>
<meta http-equiv="X-UA-Compatible" content="IE=10,chrome=1"> <- and many combinations
document.execCommand('AutoUrlDetect', false, false);
<p x-ms-format-detection="none">
我尝试使用JS变异事件来检测更改,但是当浏览器进行这些更改时,似乎没有发送任何事件。