Спасибо за ответы всем: по ссылкам и методам seanb и некоторым опубликованным, я смог найти решение, которое работает для IE и Firefox, поэтому я решил опубликовать «полный» ответ. Вот это как удобное расширение jQuery!
Расширение jQuery
jQuery.extend({
skype : function(failureFunction) {
var $ = jQuery;
if ($.browser.safari || $.browser.opera) {
return true;
} else if ($.browser.msie) {
try {
if (new ActiveXObject("Skype.Detection")) return true;
} catch(e) { }
} else {
if (typeof(navigator.mimeTypes["application/x-skype"]) == "object") {
return true;
}
}
$('a[href^="skype:"]').click(function() {
failureFunction();
return false;
});
return false;
}
});
Использование
HTML:
<a href="skype:your.skype.username?call">Call me</a>
<a href="skype:your.skype.username?add">Add me</a>
Javascript:
jQuery(function($) {
$.skype(function() {
// this function gets called if they don't have skype.
alert("Looks like you don't have skype. Bummer.");
});
});
И это все!
Если кто-то использует Safari, Opera или Chrome, он просто разрешит браузеру разобраться с этим.
edit: перенастроил функцию, чтобы она выполняла проверку только при загрузке страницы, а не каждый раз при загрузке страницы. Функция $.skype
теперь возвращает бул, сообщающий вам, был ли обнаружен скайп или нет .