Недавно у меня была такая же проблема. Эта проблема во всем stackoverflow и везде. Как скрыть префикс 'tel:' и предотвратить его появление в обычных браузерах. Нет хорошего единственного ответа.
В итоге я сделал это так:
сначала я использую метаязык для фильтрации браузера по сравнению с мобильным (например, php/coldfusion/perl) на основе строки пользовательского агента:
regular exp match for "/Android|webOS|iPhone|iPad|BlackBerry/i",CGI.HTTP_USER_AGENT
это дает мне условие if/else для настольного браузера и телефона.
Далее мой тег href выглядит так: <a class="tel" id='tel:8005551212' href=''>800-555-1212</a>
Используйте CSS для стилизации класса .tel в таблице стилей рабочего стола, чтобы он не выглядел как ссылка на настольные браузеры. номер телефона все еще можно щелкнуть, но это не очевидно, и он ничего не сделает:
/* this is in default stylesheet, styles.css: */
.tel{
text-decoration:none;
color: #000;
cursor:default;
}
/* it should be re-styled in mobile css: */
.tel{
text-decoration: underline;
color: #0000CC;
cursor:auto;
}
Наконец, я делаю небольшой jquery для мобильных ссылок. jQuery получает идентификатор из класса a.tel и вставляет его в свойство href, что делает его доступным для пользователей телефонов.
Все это выглядит так:
<!-- get regular CSS -->
<link rel="stylesheet" href="styles/styles.css" type="text/css" media="Screen" />
<!-- get user agent in meta language. and do if/else on result.
i'm not going to write that part here, other than pseudocode: -->
if( device is mobile ) {
<!-- load mobile CSS -->
<link rel="stylesheet" href="styles/mobile.css" type="text/css" media="handheld" />
<!-- run jQuery manipulation -->
<script>
$(function(){$('a.tel').prop('href',$('a.tel').prop('id'));});
</script>
}
<p> Call us today at <a class="tel" id='tel:8005551212' href=''>800-555-1212</a>!</p>
Одно предостережение к этому подходу: идентификаторы должны быть уникальными. Если у вас есть повторяющиеся номера телефонов на странице, которую вы хотите связать, измените идентификатор на имя, а затем вы используете jQuery для их перебора.
person
Alan
schedule
15.03.2013
tel:
не зависит от размера экрана, поддержки сенсорных экранов, мобильных и настольных компьютеров и т. д. Вы должны делать самое простое и всегда показывать ссылкуtel:
. Решениеtitle
(верхний ответ), чтобы дать некоторый контекст и / или показать фактическое число, является самым четким решением без обнаружения. - person toastal   schedule 14.09.2020