Windows phone 7/8 将 map: links 和 tel: links 注入到页面 DOM 中。这些注入的链接也改变了 DOM:它将原始 HTML 文档中的空格转换为 并将换行符放入 <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 中的空间转换为 它很难看到,但它还在原始 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 突变事件发生的变化,但似乎浏览器在进行这些更改时没有发送任何事件。