如何检测浏览器对Flash的支持?

时间:2011-09-14 10:21:10

标签: flash

这是我的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 个答案:

答案 0 :(得分:4)

这是:

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

答案 1 :(得分:3)

无法在php中检测Flash支持。 php是一种服务器端语言,只能看到Web浏览器的请求。由于在安装和不安装Flash的情况下请求看起来相同,因此无法区分php或任何服务器端程序中的两种情况。

每当Flash可用时,您应该发送一个可以回溯到HTML / CSS / JavaScript的网站。坦率地说,除非你有一个高级应用程序(想想地图应用程序,3D和/或视频聊天),否则你不应该首先使用Flash来处理简单的菜单。

答案 2 :(得分: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;
}