Chinaunix首页 | 论坛 | 博客
  • 博客访问: 706758
  • 博文数量: 95
  • 博客积分: 1773
  • 博客等级: 上尉
  • 技术积分: 1653
  • 用 户 组: 普通用户
  • 注册时间: 2007-08-17 23:28
文章分类
文章存档

2018年(2)

2017年(10)

2016年(7)

2015年(48)

2014年(2)

2013年(2)

2012年(2)

2011年(7)

2010年(7)

2009年(3)

2008年(1)

2007年(4)

分类: 系统运维

2009-06-16 09:15:53

    近日需要在web页面中检测浏览器是否安装有RealPlayer插件功能,遍搜网络而不获理想的解决方案,遂在网络上已有的方案上自己整合了一个方案,经测试在IE(6,7,8)及Firefox(2/3),Opera9,safari4和谷歌上均能起效,载文以备查。
1. 以往的方案要么是针对IE的,要么是采用VBscript的,都不够理想,例如:
,其中就用到了VBscript,这个在非IE的浏览器上一般不被支持。

2. 我的方案特点,IE和非IE采用不同的检测机制,IE的RealPlayer插件是ActiveX组件,可以采用创建RealPlayer对应ActiveX是否成功来检测,非IE浏览器一般使用Plugin机制,可以枚举浏览器中的Plugin,看是否有对应的插件来检测。

3.检测的实现:

function RealplayerTest()
{
    /* 测试当前系统中是否支持RealPlayer播放
    // 返回值: true------支持RealPlayer
    // false-----不支持RealPlayer
    //*/

    var RealMode=0;
    var RealG2=0;
    var Real5=0;
    var Real4=0;
    if (navigator.userAgent.indexOf("MSIE")< 0 )
    { //对非IE的处理
        var numPlugins = navigator.plugins.length;
        for (var i = 0; i < numPlugins; i++)
        {
            plugin = navigator.plugins[i];
            if (plugin.name.substring(0,10)=="RealPlayer")
            {
                RealMode=1;
            }
        }
    }else{ //对IE内核浏览器的处理
        try {
            var realtmp=new ActiveXObject("rmocx.RealPlayer G2 Control");
            if (realtmp)
            {
                RealG2=1;
            }
        }catch(e){
            RealG2=0;
        }
        try {
            var realtmp=new ActiveXObject("RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)");
            if (realtmp)
            {
                Real5=1;
            }
        }catch(e){
            Real5=0;
        }
        try {
            var realtmp=new ActiveXObject("RealVideo.RealVideo(tm) ActiveX Control (32-bit)");
            if (realtmp)
            {
                Real4=1;
            }
        }catch(e){
            Real4=0;
        }
        if (RealG2|Real5|Real4)
        {
            RealMode=1;
        }
    }
    
    if ( RealMode )
    {
        return true;
    }else{
        return false;
    }
}

阅读(2435) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~