На тех машинах Windows, где установлен Skype, он конвертирует все телефонные номера в Skype, поэтому вы можете щелкнуть по ним чтобы позвонить в Skype.
Вопрос в том, как вы предотвратите это для определенного номера на странице?
На тех машинах Windows, где установлен Skype, он конвертирует все телефонные номера в Skype, поэтому вы можете щелкнуть по ним чтобы позвонить в Skype.
Вопрос в том, как вы предотвратите это для определенного номера на странице?
Попробуйте не выводить числа в виде одного фрагмента текста. Вместо
<span>888-555-1212</span>
попробовать
<span>888-</span><span>555-1212</span>
и он отключит скайп
Обновление
Этот ответ более не точен - см. Даниэль Бирн для получения дополнительной информации.
Используя только CSS, его можно удалить, переопределив стили, используемые Skype. Попробуйте добавить эти две строки в таблицу стилей:
span.skype_pnh_container {display:none !important;}
span.skype_pnh_print_container {display:inline !important;}
Skype предпринял попытку добавить произвольно сгенерированную строку чисел в конец своего тега span, поэтому вышеупомянутый ответ от Groo не совсем точен. Чтобы правильно выбрать все теги Skype на странице, используйте селекторы шаблонов CSS3, например:
span[class^='skype_pnh_container'] {display:none !important;}
span[class^='skype_pnh_print_container'] {display:inline !important;}
Оператор ^=
вызывает селектор атрибутов для элементов mach, которые имеют класс, содержащий значение, которое начинается с "skype_pnh_container" и "skype_pnh_print_container"
<meta name="SKYPE_TOOLBAR" content="SKYPE_TOOLBAR_PARSER_COMPATIBLE" />
Официальным решением является добавление следующего метатега в раздел заголовка вашей веб-страницы. Это предотвратит скайп при переформатировании по номерам телефонов.
<meta name="SKYPE_TOOLBAR" content="SKYPE_TOOLBAR_PARSER_COMPATIBLE" />
EDIT: Извините, я только что обнаружил, что IE9 имеет проблемы с этим решением, поскольку он не поддерживает мягкие дефисы.
Существует альтернативное решение этой проблемы:
Вы можете использовать символ софт-дефис (­
) внутри номера телефона, чтобы решить проблему. Например, учитывая число
<span>0664 111 222 3</span>
измените на
<span>0664­ 111 222 3</span>
и будьте счастливы:)
Я просто обнаружил, что если вы используете новый протокол HTML5 tel, он блокирует появление нежелательной почты Skype:
<a href="tel:+18001234567">1 800 123 4567</a>
Я видел в interweb множество возможных решений javascript-решений, мета-тегов, css и, возможно, я нашел хак, который действительно работал на моих сайтах, я тестировал на некоторых компьютерах, и он работает, и я думаю, что он будет работать до тех пор, пока skype don ' t что-то изменит в их коде.
Я смотрел, что скайп делает именно на наших страницах, и он создает некоторый диапазон вокруг телефонных номеров, как вы уже сказали, но даже добавляет тег в конце документа сразу после закрытия тега тела,
И вот я увидел трюк! Перед этим объектом есть тег конфигурации:
<span id="skype_highlighting_settings" display="none" autoextractnumbers="1"></span>
Динамически добавляется плагин! но здесь решение становится очевидным, чтобы завершить stop skype messing с вашим дизайном и избежать изменения номера телефона, решение заключается в том, чтобы вставить в начале документа следующий тег:
<span id="skype_highlighting_settings" display="none" autoextractnumbers="0"></span>
обратите внимание на autoextractnumbers = "0", вот трюк. Документ не будет проверять в любом случае с этим тегом, потому что нет атрибута "autoextractnumbers", но я заметил, что он работает, даже если прокомментирован:
<!-- <span id="skype_highlighting_settings" display="none" autoextractnumbers="0"></span> -->
И это! Наслаждайтесь своими веб-страницами, свободными от грязных плагинов! И ваша веб-страница будет корректно проверяться. Надеюсь, это сработает и для вас! Я тестировал на нескольких компьютерах 3 разных браузера и 2 разных версии скайпа, пока это работает для меня, дайте мне знать, если он сработает для вас, и если он работает, поделитесь им:)
Попробуйте это. Он заменяет пробелы в номере телефона невидимым диапазоном + исходное пространство char. Так что скайп не может понять, что это число, и наш любимый номер телефона остается прежним:) Мне пришлось использовать этот подход, так как я обычно позволяю администратору контента изменять номера телефонов по своему желанию, поэтому я не смог бы использовать жесткий код в javascript. Конечно, ваша разметка должна выглядеть как <span class="phone_number">your number with some spaces inside it<span>
.
$(document).ready(function() {
if ($(".phone_number").length>0) {
$(".phone_number").each(function() {
$(this).html($(this).html().replace(/\s/g,"<span style=\"display:none\">_</span> "));
});
}
});
Я добавил пробел в первом члене числа.
Вместо (888) 222-3333 я ввел (888) 222-3333
Предоставлено: может показаться странным, но оно работает, и это просто.
Я добавил дефис в промежутке перед номером, а затем установил отображение: ни один из стиля span, который работал.
<span class="anti-skype-hyphen">-<span>01273 200 ***
Все, что вам нужно сделать, это обеспечить, чтобы ваш селектор CSS был более специфичным, чем используемый селектором Skype. В текущей таблице стилей skype они используют:
span.skype_pnh_container span.skype_pnh_highlighting_inactive_common span.skype_pnh_text_span {...}
Вам нужно будет добавить дополнительный класс - свой собственный контекст веб-сайта - этому селектору, т.е.
.myclass span.skype_pnh_container span.skype_pnh_highlighting_inactive_common span.skype_pnh_text_span {...}
Вы также можете оставить номер один и удалить его с помощью JS.
jQuery(document).ready(function(){jQuery('.skype_pnh_container').parent().html('(555) 222 - 3333');
jQuery('.skype_pnh_container').remove()}
Это сложнее сделать в обычном HTML, но Skype не удаляет родительский контейнер, поэтому помещаем номер в код с идентификатором, вы можете сделать "getElementById" на нем, установить innerHTML на телефон число.
document.getElementById('phoneNumberContainer').innerHTML='(555) 222 - 4444';
Если вы используете PhoneGap в iOS, это может быть проблемой UIWebView (отдельно от Skype).
Следующая строка устраняет проблему, если вы не хотите, чтобы автоматические ссылки генерировались в UIWebView:
self.viewController.webView.dataDetectorTypes = UIDataDetectorTypeNone;
внутри AppDelegate.m в -(BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions