Укрощение объекта автоматического телефонного номера в окне 10-кратного браузера
Краткий браузер Windows 10, похоже, обнаруживает номера телефонов, даже если в системе нет приложения для телефона.
Он форматирует телефонный номер синим цветом с подчеркиванием, даже если он просто в обычном тексте где-то (уродливый на некоторых фонах), более того, он обнаруживает, например, Номера НДС, как если бы они были номерами телефонов.
Итак, как мы контролируем его как веб-мастера для:
-
как он отображает обнаруженный материал (я полагаю, MSFT изобрел свой собственный CSS-селектор для этого материала?)
-
как отключить обнаружение
Желательно, чтобы что-то просто предназначалось для этого браузера, а не рисковало запутывать вещи для других или добавлять нестандартные вещи в действующий в противном случае код.
EDIT:
-
Предлагаемый способ отключить обнаружение в соответствии с тем, как это делается в IE11 для телефонов Windows, не работает во всех моих тестах. Метатег не работает, и нестандартный атрибут html работает.
-
Я посмотрел на предмет проверки в краю, и мне кажется, что вычисляемый CSS для обнаруженных элементов - это то, что можно было бы увидеть там, если оно не было обнаружено (т.е. вычисленный CSS является обычным цветом и без подчеркивания), что указывает на мало шансов контролировать, как это делается.
EDIT:
тестовый пример 1: метатег (сбой)
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta charset="UTF-8" />
<!-- test -->
<meta name="format-detection" content="telephone=no" />
</head>
<body>
<p>text VAT BE 0123.456.789 text </p>
<p>text +32 11 222 333 text</p>
</body>
</html>
Ответы
Ответ 1
По-видимому, обнаружение номера телефона было введено в Internet Explorer 11, но не на рабочих столах.
Вот способы управления им, взятые из этой статьи MS: распознавание номера телефона
- Чтобы отключить поведение элемента (и его дочерних элементов), установите для атрибута
x-ms-format-detection
значение "none".
- Чтобы отключить поведение веб-страницы, используйте мета-элемент:
<meta name="format-detection" content="telephone=no"/>
-
Чтобы включить поведение элемента (и его дочерних элементов), установите для атрибута x-ms-format-detection
значение "телефон" или "все".
-
Чтобы выборочно управлять поведением с использованием JavaScript, используйте setAttribute
, чтобы изменить значение атрибута x-ms-format-detection
ассоциированного элемента или его родителя. (Обратите внимание, что это нужно сделать до того, как элемент или родитель будет отображаться в DOM, динамические изменения не поддерживаются.)
Если я правильно понимаю статью, если обнаружение телефона отключено на уровне браузера, атрибут x-ms-format-detection
(или метатег) будет проигнорирован.
Ответ 2
Использование x-ms-format-detection="none"
работало для меня. Однако мне пришлось добавить его к родительскому элементу.
Например, мой номер телефона был заключен в класс span, поэтому мне пришлось добавить его в родительский div выше. Добавление непосредственно к тегу span не помогло мне решить проблему.
Надеюсь, что поможет
Ответ 3
Я нашел способ, который отлично подходит для меня, и он состоит в изменении тега, в котором у вас есть номер с помощью "a" (якорь), а не с любым из них, без необходимости href. Затем установите для text-underline значение none и color для наследования. Это все.
Ответ 4
Если вы добавите x-ms-format-detect = "none" в тег body, он будет применен ко всей странице.
<body x-ms-format-detection="none">