近日需要在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;
}
}
|
阅读(2411) | 评论(0) | 转发(0) |