<SCRIPT LANGUAGE="JavaScript"> <!-- var swf = new ActiveXObject('ShockwaveFlash.ShockwaveFlash'); (swf) ? document.writeln('你已經(jīng)安裝了插件') : document.writeln('你沒(méi)有安裝插件'); // --> </SCRIPT> 動(dòng)態(tài)加載. <OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="mFlash" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" WIDTH="120" HEIGHT="60" id="468x60" ALIGN="" VIEWASTEXT> <PARAM NAME=quality VALUE=high> </OBJECT> <input type=button onclick="addFlash()" value="Add"> <input type=button onclick="mFlash.Stop()" value="Stop"> <input type=button onclick="mFlash.Play()" value="Play"> <script> function addFlash() { mFlash.movie="http://expert.csdn.net/images/ad/WIBU.swf"; mFlash.Play(); } </script> 有很多檢測PLUGIN的方法,因為不能只用一個(gè)方法就解決了這個(gè)問(wèn)題,所以才有了這么多的方法 一、內置的檢測 NN和MAC上的IE不能使用以下的檢測,只有WIN上的IE可以 1、即需即裝 在IE的工具-Internet選項-高級-瀏覽里面的即需即裝選項如果生效了,當瀏覽器需要,就會(huì )從MS的網(wǎng)站下載Flash Player ActiveX control 如果沒(méi)生效,你沒(méi)安裝PLUGIN又直接進(jìn)入了網(wǎng)頁(yè),就會(huì )看到一個(gè)裂開(kāi)的方塊那樣的小ICON,點(diǎn)一下也可以帶你去安裝 2、HTML里面的OBJECT標簽里面的classid 和 codebase屬性 classid是ActiveX control的標識,例如FLASH PLAYER的就是: clsid:D27CDB6E-AE6D-11cf-96B8-444553540000 codebase則是下載插件的地址,例如FLASH4的(如果瀏覽器檢查到version后面的數字低于你已有版本,就不會(huì )安裝): http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=4,0,2,0 這些HTML標簽當你在FLASH中PUBLIC或者DW中插入時(shí)都會(huì )自動(dòng)加入 瀏覽器執行到這些標簽就會(huì )進(jìn)行檢測了 二、用SCRIPT來(lái)檢測 這種方法是為了擺脫上一種辦法的局限,例如DW里面那個(gè)叫"Check Plug-in"的behavior 這種方法在有些不能執行SCRIPT的機器上還是用不了,例如MAC上IE4.5之前版本,WIN31上面的IE。 還有某些用戶(hù)是關(guān)閉SCRPIT執行的。 三、用FLASH來(lái)檢測 如果用戶(hù)連SCRPIT都不執行的話(huà),就只能用這招了。這也是MM自己用的方法。 做一個(gè)檢測的HTML,里面放一個(gè)SWF,里面只有一句GetURL("你真正的頁(yè)面") 同時(shí)在HTML的<HEAD>里面放<META HTTP-EQUIV="Refresh" CONTENT="10; URL="沒(méi)有安裝FLASH的頁(yè)面"> 如果在10秒之內SWF沒(méi)有把你帶到真正的頁(yè)面,檢測的HTML就會(huì )把你帶到?jīng)]安裝的頁(yè)面 四、最后一個(gè)辦法,讓用戶(hù)自己選擇 這也是最常見(jiàn)的了,很多網(wǎng)站都做一個(gè)入口的頁(yè)面,下面就有安裝PLUGIN的小ICON <!-- 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 "無(wú)FLASH的HTML" End If </SCRIPT> <script type="text/javascript" language="JavaScript"> <!-- start JS detection FlashMode = 0; if (navigator.plugins && navigator.plugins.length > 0) { if (navigator.plugins["Shockwave Flash"]) { var plugin_version = 0; var words = navigator.plugins["Shockwave Flash"].description.split(" "); for (var i = 0; i < words.length; ++i) { if (isNaN(parseInt(words[i]))) continue; plugin_version = words[i]; } if (plugin_version >= 5) { var plugin = navigator.plugins["Shockwave Flash"]; var numTypes = plugin.length; for (j = 0; j < numTypes; j++) { mimetype = plugin[j]; if (mimetype) { if (mimetype.enabledPlugin && (mimetype.suffixes.indexOf("swf") != -1)) FlashMode = 1; // Mac wierdness if (navigator.mimeTypes["application/x-shockwave-flash"] == null) FlashMode = 0; } } } } } if (FlashMode == 1) { document.write('有FLASH的HTML');} else { document.write('無(wú)FLASH的HTML'); } |
聯(lián)系客服