DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> 判斷客戶端浏覽器是否安裝了Flash插件的多種方法
判斷客戶端浏覽器是否安裝了Flash插件的多種方法
編輯:關於JavaScript     
常用的方法:
復制代碼 代碼如下:
<SCRIPT LANGUAGE="JavaScript">
<!--
var swf = new ActiveXObject('ShockwaveFlash.ShockwaveFlash');
(swf) ? document.writeln('你已經安裝了插件') : document.writeln('你沒有安裝插件');
// -->
</SCRIPT>
[code]
動態加載.
[code]
<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://www.jb51.net/images/ad/WIBU.swf";
mFlash.Play();
}
</script>

有很多檢測PLUGIN的方法,因為不能只用一個方法就解決了這個問題,所以才有了這麼多的方法
一、內置的檢測
NN和MAC上的IE不能使用以下的檢測,只有WIN上的IE可以
1、即需即裝
在IE的工具-Internet選項-高級-浏覽裡面的即需即裝選項如果生效了,當浏覽器需要,就會從MS的網站下載Flash Player ActiveX control
如果沒生效,你沒安裝PLUGIN又直接進入了網頁,就會看到一個裂開的方塊那樣的小ICON,點一下也可以帶你去安裝
2、HTML裡面的OBJECT標簽裡面的classid 和 codebase屬性
classid是ActiveX control的標識,例如FLASH PLAYER的就是:
clsid:D27CDB6E-AE6D-11cf-96B8-444553540000
codebase則是下載插件的地址,例如FLASH4的(如果浏覽器檢查到version後面的數字低於你已有版本,就不會安裝):
http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=4,0,2,0
這些HTML標簽當你在FLASH中PUBLIC或者DW中插入時都會自動加入
浏覽器執行到這些標簽就會進行檢測了
二、用SCRIPT來檢測
這種方法是為了擺脫上一種辦法的局限,例如DW裡面那個叫"Check Plug-in"的behavior
這種方法在有些不能執行SCRIPT的機器上還是用不了,例如MAC上IE4.5之前版本,WIN31上面的IE。
還有某些用戶是關閉SCRPIT執行的。
三、用FLASH來檢測
如果用戶連SCRPIT都不執行的話,就只能用這招了。這也是MM自己用的方法。
做一個檢測的HTML,裡面放一個SWF,裡面只有一句GetURL("你真正的頁面")
同時在HTML的<HEAD>裡面放<META HTTP-EQUIV="Refresh" CONTENT="10; URL="沒有安裝FLASH的頁面">
如果在10秒之內SWF沒有把你帶到真正的頁面,檢測的HTML就會把你帶到沒安裝的頁面
四、最後一個辦法,讓用戶自己選擇
這也是最常見的了,很多網站都做一個入口的頁面,下面就有安裝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 "無FLASH的HTML"
End If
</SCRIPT><!-- end VBSCRIPT PLUGIN DETECTION -->

<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('無FLASH的HTML'); }
// end JS detection -->

通過以下的Javascript腳本,可以檢測當前浏覽器是否安裝Flash插件以及插件的版本是否滿足要求。
復制代碼 代碼如下:
<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>

<script>
//自己總結的
//IE中判斷是否安裝插件
var swf;
function IE_Flash()
{
try
{
var swf=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
alert("已安裝插件");
}
catch(e)
{
alert("沒有安裝插件");
}
}
//FireFox,Chrome中判斷是否安裝插件
function FF_or_Chrome_Flash()
{
var swf=navigator.plugins["Shockwave Flash"];
(swf)?alert("已安裝插件"):alert("沒有安裝插件");
}
</script>
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved