我想基于此更改链接的 href:如果未安装 Skype,则显示一个解释 Skype 是什么以及如何安装它的弹出窗口,如果已安装,请将链接更改为 skype:my.contact.name?通话,因此单击将开始通话。房地产问题意味着我宁愿只显示一个链接。
问问题
569 次
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,这不能以跨浏览器兼容的方式完成。有某种支持,但它是错误的。
于 2013-07-27T08:50:22.117 回答