一、用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〉〈!-- |
要使自己的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"]) ? if ( plugin ) { if ( MM_FlashCanPlay ) { </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 --> |