当前位置:  开发笔记 > 编程语言 > 正文

用于检测Skype的Javascript?

如何解决《用于检测Skype的Javascript?》经验,为你挑选了2个好方法。

某些Javascript是否可以检测是否安装了Skype?

我之所以要问的是,我想基于以下方式更改链接的href:如果没有安装Skype,请显示一个弹出窗口,说明Skype是什么以及如何安装它,如果已安装,请将链接更改skype:my.contact.name?call为点击即可开始通话.房地产问题意味着我更愿意只显示一个链接.



1> nickf..:

感谢大家的答案:从链接和方法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:

Call me
Add me

使用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函数现在将返回一个bool,告诉您是否检测到Skype.



2> some..:

适用于IE和Firefox,但不适用于Chrome或Opera

function isSkypeInstalled(str) {
    try {
        /*@cc_on
        //The Microsoft way, thanks to the conditional comments only run in IE
        if (new ActiveXObject("Skype.Detection")) return true;
        @*/

        //Tested for firefox on win
        if (navigator.mimeTypes["application/x-skype"]) return true;
    }
    catch(e){}
    return false;
}

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有