Почему Safari в IPhone XS Max применяет привязку телефона к значениям в атрибутах данных? - PullRequest
2 голосов
/ 25 февраля 2020

У нас есть виджет html / javascript, который наши клиенты могут добавить на веб-страницы своих сайтов, добавив тег в заголовок страницы и добавив элемент в тело страницы.

<a href="#" class="ourwidgetclass" data-product-id="1234567890" />

Когда страница загружается, наш javascript находит все элементы на этой странице с этим классом, извлекает productId из этого атрибута данных, выполняет веб-сервисный вызов нашего API и визуализирует небольшую визуализацию продукта для предоставленного идентификатора продукта.

Вчера мы получили сообщение об ошибке, что этот html рендерит следующим образом

<a href="#" class="ourwidgetclass" data-product-id="<a href="tel:1234567890">1234567890</a>" />

Это:

  • локализовано для сафари на iOS
  • происходит только на IPhone XS Max - это не происходит ни на одном другом iphone устройстве

Я посмотрел на SO и обычно рекомендую добавить следующий метатег isn Для нас это не вариант, так как мы можем (или не должны) изменять метатеги на сайте клиента, который отображает наш виджет. (<meta name="format-detection" content="telephone=no">)

Так что кроме написания какого-то ужасного javascript / regex, чтобы попытаться определить, когда safari взламывает наши данные, как это ... есть ли у кого-нибудь идеи, почему это может происходить таким локализованным образом .

...