Windows Phone IE Mobile - 如何禁用自动网址(地址和电话号码)?

bhe*_*ads 5 javascript ie-mobile windows-mobile windows-phone windows-phone-8

Windows phone 7/8将map:links和tel:links注入页面DOM.这些注入的链接也改变了DOM:它将原始HTML文档中的空格转换为  和换行到<br>标签,然后将它们包装在锚点中.在检测地址时,浏览器似乎也有误报,它将无序列表中的元素转换为map:link.

我想完全禁用此功能(如果可能的话).

示例HTML:

<!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,&nbsp;AZ&nbsp;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>
Run Code Online (Sandbox Code Playgroud)

此代码将生成以下输出: 输出图像

该页面添加了以下链接:

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>Glendale,&nbsp;AZ&nbsp;85305-9400</a>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="tel:6238726700">623-872-6700</a>
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,它将战争HTML中的空间转换为  很难看,但它也在原始HTML中添加了一个额外的\n.

我不能简单地从源中删除空格和\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">
Run Code Online (Sandbox Code Playgroud)

我试图通过JS突变事件检测发生的变化,但看起来浏览器在进行这些更改时不会发送任何事件.

小智 3

<p>...</p>将地址周围替换为<div>...</div>每行周围可以消除空格问题,但这也会破坏地址解析器,使其不会将地址链接到地图。不幸的是,添加微格式对恢复位置检测没有任何帮助,但此代码片段不存在链接的空白问题:

<div class="vcard">
    <div class="n">Mystery Guest</div>
    <div class="addr">9380 W. Glendale Ave.</div>
    <div><span class="locality">Glendale</span>, <span class="region">AZ</span> <span class="postal-code">85305-9400</span></div>

    <div class="tel">623-872-6700</div>
</div>
Run Code Online (Sandbox Code Playgroud)

我的猜测是,将地址分解为不同的块级元素会阻塞地址解析器并让您继续前进。

已在 Lumia 521 上进行测试