javascript - 为什么 iPhone XS Max 上的 Safari 将手机链接应用到数据属性中的值?
问题描述
我们有一个 html/javascript 小部件,我们的客户可以通过在页面头部添加标签并在页面正文中添加元素来将其添加到他们的网站网页中。
<a href="#" class="ourwidgetclass" data-product-id="1234567890" />
当页面加载时,我们的 javascript 找到该页面上具有该类的所有元素,从该数据属性中获取 productId,对我们的 API 进行 Web 服务调用,并为提供的产品 Id 呈现一个小的产品可视化。
昨天我们收到一个错误报告,这个 html 呈现如下
<a href="#" class="ourwidgetclass" data-product-id="<a href="tel:1234567890">1234567890</a>" />
这是:
- 在 iOS 上本地化为 safari
- 仅在 iPhone XS Max 上发生 - 它不会在任何其他 iPhone 设备上发生
我环顾四周,通常建议添加以下元标记对我们来说不是一个选项,因为我们可以(或不应该)修改呈现我们小部件的客户端站点上的元标记。( <meta name="format-detection" content="telephone=no">
)
因此,除了编写一些可怕的 javascript/regex 来尝试识别 safari 何时会像这样篡改我们的数据......有没有人知道为什么这可能会以如此本地化的方式发生。
解决方案
推荐阅读
- python - 获取 NameError:Vapoursynth/Python 中未定义名称“视频”
- oracle - 如何使用 curl 在 Oracle Apex 中提交页面
- jira - 在 JIRA 中返回没有父级的问题的查询
- rxjs - RxJS:使用自定义逻辑匹配两个可观察对象
- ios - 越野车 UI 表格视图
- python - 解析 PDF 时忽略表格
- java - 你应该如何在 Java 中处理 MongoDB 异常?
- mongodb - MongoDB获取项目数组中的item.field列表
- java - 最后在与特定键匹配的数组中添加元素
- function - 在 Haskell 中减少命题的大小