Я хотел бы изменить href ссылки на это: если Skype не установлен, покажите всплывающее окно, объясняющее, что такое Skype и как его установить, если оно установлено, измените ссылку на skype: my.contact. name? call, чтобы щелчок начал звонок. Проблемы с недвижимостью означают, что я предпочел бы показывать только одну ссылку.Javascript для обнаруженияSkype?
ответ
К сожалению, браузеры не поддерживают такой API, и это невозможно сделать с помощью кросс-браузера. Есть какая-то поддержка, но она глючит.
Все плагины браузера регистрирующие свои мим-типы в глобальном массиве с именем mimeTypes
, который можно получить с помощью навигатора объекта navigator.mimeTypes
.
Таким образом, вы можете использовать это для плагина проверки активным или нет. Если плагин установлен и отключен - никакой тип mime не будет зарегистрирован для этого отключенного плагина. Если установлен плагин и активный - он есть запись типа пантомимы в navigator.mimeTypes
Некоторые реализации кода с помощью JQuery:
jQuery.extend({checkPlugin: function(mimetype_substr) {
for (var i = 0; i < navigator.mimeTypes.length; i++) {
if (navigator.mimeTypes[i]['type'].toLowerCase().indexOf(mimetype_substr) >= 0) {
console.log("Gotcha! Here it is: "+navigator.mimeTypes[i]['type']);
return true;
}
}
return false;
}});
Так что это: true
, если установлен и активный скайп click2call плагин $.checkPlugin("skype");
возвращается. И false
, если нет активного плагина или плагина, не установлены.
На самом деле нужно искать в другом глобальном массиве - navigator.plugins
, но все активные плагины имеют свои записи в navigator.mimeTypes
, и это немного проще.
Возможный дубликат [Javascript для обнаружения Skype?] (Http://stackoverflow.com/questions/358397/javascript-to-detect-skype) –