当前位置:软件学习 > Flash >>

javascript检测flash插件是否安装

一、用SCRIPT来检测
这种方法是为了摆脱上一种办法的局限,例如DW里面那个叫"Check Plug-in"的behavior
这种方法在有些不能执行SCRIPT的机器上还是用不了,例如MAC上IE4.5之前版本,WIN31上面的IE。
还有某些用户是关闭SCRPIT执行的。

最简单的办法

 代码如下 复制代码

<SCRIPT  LANGUAGE="JavaScript"> 
<!-- 
var  swf  =  new  ActiveXObject('ShockwaveFlash.ShockwaveFlash'); 
(swf)  ?  document.writeln('你已经安装了插件')  :  document.writeln('你没有安装插件'); 
//  --> 
</SCRIPT> 

如果要检测flash版本可

 代码如下 复制代码

〈SCRIPT type=text/vbscript〉〈!--
    //IE
    on error resume next
    set f = CreateObject(“ShockwaveFlash.ShockwaveFlash“)
    if IsObject(f) then
    i_flash = true
    v_flash = hex(f.FlashVersion())
    end if
    // --〉〈/SCRIPT〉

    〈SCRIPT type=text/javascript〉〈!--
    if (i_flash) {
    document.writeln(“你已经安装了Flash插件“)
    if (v_flash) {
    document.writeln(“ - 版本 “ + v_flash);
    }
    } else {
    document.writeln(“你没有安装Flash插件“)
    }
    // --〉
〈/SCRIPT〉

要使自己的Flash能够在每个用户的浏览器上都能正常播放,我们就必须准确的了解用户当前是否已经安装了Flash播放器插件,以及其所安装的插件的版本号。这个检测工作可以通过Javascript来完成。

 代码如下 复制代码

<SCRIPT LANGUAGE="JavaScript1.1">
<!--
// U can change this number to check specific version of flash
var MM_contentVersion = 6;

var plugin = (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"]) ?
                     navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin : 0;

if ( plugin ) {
    var words = navigator.plugins["Shockwave Flash"].description.split(" ");
    for (var i = 0; i < words.length; ++i){
        if (isNaN(parseInt(words[i])))
            continue;
        var MM_PluginVersion = words[i];
    }
    var MM_FlashCanPlay = MM_PluginVersion >= MM_contentVersion;
}
else if( navigator.userAgent && navigator.userAgent.indexOf("MSIE")>=0 &&
        (navigator.appVersion.indexOf("Win") != -1) ) {
    //FS hide this from IE4.5 Mac by splitting the tag
    document.write('<SCR' + 'IPT LANGUAGE=VBScript> n');
    document.write('on error resume next n');
    document.write('MM_FlashCanPlay = ( IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash." & MM_contentVersion)))n');
    document.write('</SCR' + 'IPT> n');
}

if ( MM_FlashCanPlay ) {
    alert("Flash Detection OK. U can play.");
}
else{
    alert("Flash Detection Failed. Need Download specific version.");
}
//-->

</SCRIPT>

二、用FLASH来检测
如果用户连SCRPIT都不执行的话,就只能用这招了。这也是MM自己用的方法。
做一个检测的HTML,里面放一个SWF,里面只有一句GetURL("你真正的页面")
同时在HTML的<HEAD>里面放<META HTTP-EQUIV="Refresh" CONTENT="10; URL="没有安装FLASH的页面">
如果在10秒之内SWF没有把你带到真正的页面,检测的HTML就会把你带到没安装的页面

代码

 

 代码如下 复制代码
<!-- start VBSCRIPT plugin detection-->
<SCRIPT LANGUAGE=VBScript>
Private i, x, MM_FlashControlVersion
On Error Resume Next
x = null
MM_FlashControlVersion = 0
var Flashmode
FlashMode = False
For i = 5 To 1 Step -1
        Set x = CreateObject("ShockwaveFlash.ShockwaveFlash." & i)
       
        MM_FlashControlInstalled = IsObject(x)
       
        If MM_FlashControlInstalled Then
                MM_FlashControlVersion = CStr(i)
                Exit For
        End If
Next
FlashMode = (MM_FlashControlVersion >= 5)
If FlashMode = True Then
document.write "有FLASH的HTML"
Else
document.write "无FLASH的HTML"
End If
</SCRIPT><!-- end VBSCRIPT PLUGIN DETECTION -->
补充:flash教程,动画技术 
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,