0

我想基于此更改链接的 href:如果未安装 Skype,则显示一个解释 Skype 是什么以及如何安装它的弹出窗口,如果已安装,请将链接更改为 skype:my.contact.name?通话,因此单击将开始通话。房地产问题意味着我宁愿只显示一个链接。

4

2 回答 2

0

所有浏览器插件都在名为的全局数组中注册它们的 mime 类型mimeTypes,可以通过 navigator object 访问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;
}});

所以这个:如果Skype click2call插件已安装并处于活动状态,则$.checkPlugin("skype");返回。true如果false没有活动插件或插件未安装。

实际上需要在另一个全局数组中搜索 - navigator.plugins,但是所有活动插件的记录都在 中navigator.mimeTypes,这更容易一些。

于 2014-08-28T06:25:12.193 回答
0

不幸的是,浏览器不支持这样的 API,这不能以跨浏览器兼容的方式完成。有某种支持,但它是错误的。

检测Skype的Javascript?

于 2013-07-27T08:50:22.117 回答