2011-09-14 67 views
2

這是我的HTML,但如果瀏覽器不支持flash的話,我想在閃現部分如何檢測Flash的瀏覽器支持?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
     <title>Untitled Document</title> 
     <script type="text/javascript"> 
      if(typeof navigator.plugins['Shockwave Flash']!=='undefined'){ 
       alert('support'); 
      }else{ 
       alert('not support'); 
      } 
     </script> 
    </head> 
    <body> 
     <!-- Empty --> 
    </body> 
</html> 
+3

是什麼都做PHP? –

回答

3

有沒有辦法來檢測在PHP Flash支持更換圖像。 php是一種服務器端語言,只能看到網頁瀏覽器的請求。由於請求看起來與安裝和未安裝Flash相同,因此無法區分php中的兩種情況或任何服務器端程序。

當Flash每次都可用時,您應該發送一個可回退到HTML/CSS/JavaScript的網站。坦率地說,除非你有高級應用程序(想象一下地圖應用程序,3D和/或視頻聊天),否則你不應該首先將Flash用於菜單等簡單的事情。

+0

我可以在jQuery中檢測? –

+0

@vipul是的。 JavaScript和jQuery(用JavaScript編寫)被執行**客戶端**,因此可以訪問插件信息,就像您的問題中的代碼一樣。 – phihag

4

這就是:

var _flash_installed = ((typeof navigator.plugins != "undefined" && typeof navigator.plugins["Shockwave Flash"] == "object") || (window.ActiveXObject && (new ActiveXObject("ShockwaveFlash.ShockwaveFlash")) != false)); 
+1

我們需要強調的是,這純粹是JavaScript(客戶端)解決方案,因爲問題之前(在編輯之前)指向PHP(服務器端)解決方案。無論如何,感謝Ofer Zelig一個非常好的(但簡單的)解決方案! :] – trejder

0

此功能可以讓瀏覽器知道用戶是否具有Flash支持:

function is_flash_support() { 
    var flash_support = false; 
    try { 
     var fo = new ActiveXObject('ShockwaveFlash.ShockwaveFlash'); 
     if(fo) { 
      flash_support = true; 
     } 
    } catch (e) { 
     if(navigator.mimeTypes && navigator.mimeTypes['application/x-shockwave-flash'] != undefined && navigator.mimeTypes['application/x-shockwave-flash'].enabledPlugin) { 
      flash_support = true; 
     } 
    } 
    return flash_support; 
} 
相關問題