皆さんの回答に感謝します。リンクとメソッド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を使用している人が来た場合は、ブラウザに処理させるだけです。
編集:ページが読み込まれるたびではなく、ページが読み込まれたときにのみチェックを実行するように関数を再調整しました。この$.skype
関数は、Skypeが検出されたかどうかを通知するブール値を返すようになりました。