5D艺术网首页
商城
|
资讯
|
作品
|
博客
|
教程
|
论坛
登录
注册
加为好友
发短消息
来自:
性别:秘密
最后登录:2012-09-14
http://gmail.5d.cn/
首页
|
新闻
|
话题
|
博客
|
相册
|
艺术作品
|
社交关系
|
留言板
|
社交圈
2005/05/31 | 转载 如何判断客户端是否安装了某个插件
类别(让工作更简单)
|
评论
(0)
|
阅读(356)
|
发表于 21:34
如何判断客户端的某个插件是否安装March 20, 2005 at 3:49 am · Filed under Scripts
近日遇到了一些问题,即如何判断客户端是否安装了某个插件、版本是否达到了我们的要求?最常见的就是使用DHTML Behavior中的两个方法:isComponentInstalled和getComponentVersion。
我们先看看msdn上关于这两个方法的说明:
msdn.microsoft.com/…/iscomponentinstalled.asp?frame=true
msdn.microsoft.com/…/getcomponentversion.asp?frame=true
代码示例:
<span style="behavior:url(#default#clientCaps)" id="info"></span>
<script type="text/javascript">
function detectPlugin(sID)
{
var bComInstalled = info.isComponentInstalled(sID, "ComponentID");
if (bComInstalled)
{
return "已安装。版本号:" + info.getComponentVersion(sID, "ComponentID");
}
else
{
return "未安装.";
}
}
alert("Flash插件" + detectPlugin("{D27CDB6E-AE6D-11CF-96B8-444553540000}"));
/*
ClassID list
{CFCDAA03-8BE4-11CF-B84B-0020AFBBCCFA} RealMedia
{6BF52A52-394A-11D3-B153-00C04F79FAA6} WindowsMedia version >=7
{22D6F312-B0F6-11D0-94AB-0080C74C7E95} WindowsMedia version 6.4
{02BF25D5-8C17-4B23-BC80-D3488ABDDC6B} QuickTime
{D27CDB6E-AE6D-11CF-96B8-444553540000} Flash
*/
</script>
这样虽然能够检测出大部分的常见插件,但是一些第三方插件,这种方法好像是不可行的。
msdn上有这么一句话:Only Microsoft Internet Explorer components are detected by this method. If a component identifier of a third-party component is specified, the method returns false.
我尝试了如下的方法:
<div id="info" style="display:none"></div>
<script type="text/javascript">
function detectPlugin(sID)
{
var pVersion;
info.innerHTML = '<object id="webCtrl" classid="CLSID:'+ sID +'"></object>';
try
{
pVersion = webCtrl.getVersion(); //控件内自己定义的一个返回版本号的方法
//return "v:" + pVersion;
return true;
}
catch (e)
{
return false;
}
}
</script>
这样虽然基本满足了我的要求,不过老是觉得这种方法走了弯路。最近的项目里用到这个,不知道各位有什么更好的方法,望不吝赐教。
0
评论
Comments
日志分类
首页
[609]
网络工程师
[97]
系统分析师
[2]
让工作更简单
[214]
生活就是这样
[40]
正在流行ing
[132]
装修全记录
[1]
电影评论
[55]
网站推荐
[56]
资源推荐
[6]
PHP CMS
[6]