2013-06-19 1 views
0

Я хотел бы изменить href ссылки на это: если Skype не установлен, покажите всплывающее окно, объясняющее, что такое Skype и как его установить, если оно установлено, измените ссылку на skype: my.contact. name? call, чтобы щелчок начал звонок. Проблемы с недвижимостью означают, что я предпочел бы показывать только одну ссылку.Javascript для обнаруженияSkype?

+0

Возможный дубликат [Javascript для обнаружения Skype?] (Http://stackoverflow.com/questions/358397/javascript-to-detect-skype) –

ответ

0

К сожалению, браузеры не поддерживают такой API, и это невозможно сделать с помощью кросс-браузера. Есть какая-то поддержка, но она глючит.

Javascript to detect Skype?

0

Все плагины браузера регистрирующие свои мим-типы в глобальном массиве с именем 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, и это немного проще.