首页 文章

如何在使用JavaScript的浏览器中检测Flash Player是否已禁用?

提问于
浏览
3

我知道如何检测Flash播放器是否安装在浏览器中 . 我正在使用swfobject的hasFlashPlayerVersion()函数 . 但是,我可以't seem to find any documentation on how to detect if the plug-in is installed and just disabled. I didn'看到Flash Player Detection Kit中的任何文档,它检查是否启用了插件 .

4 回答

  • 0

    您可以在与浏览器的javascript通信的不可见swf中进行javascript调用 . 如果发生超时,那是因为浏览器没有安装Flash播放器,或者Flash播放器已被禁用 .

    getURL("javascript:jsfunction();");
    
  • 0

    我同意Ape并且在很久以前做了类似的事情,其页面上写着“检测Flash播放器......”并等待20秒,同时加载swf文件并立即将浏览器重定向到页面外 .

    如果计时器到期(swf从未加载),它将提示用户安装Flash .

    可以将该方法与您提到的swfobject hasFlashPlayerVersion()函数结合使用 . 如果它们有闪光但swf永远不会加载,那么假设闪光灯被禁用是相当安全的 .

    所以,实际上只有3种选择:

    • 没有闪光灯

    • Flash:已启用

    • Flash:已禁用

    在伪代码中,可能如下所示:

    var hasFlash = detectFlashPlayerInstalled();
    var flashEnabled = false;
    
    /* attempt to load the swf file then wait for some time, then... */
    
    var isDisabled = hasFlash && !flashEnabled;
    

    这与javascript函数一起工作,如:

    function flashAlive() {
        flashEnabled = true;
    }
    function detectFlashPlayerInstalled() { 
        //TODO: detect flash in a better way, this will do for now
        return swfobject.hasFlashPlayerVersion(VERSION);
    }
    

    从一个小的swf文件调用,包含:

    getURL("javascript:flashAlive();");
    

    我希望在某种程度上有所帮助 .

  • 0

    这是我正在使用的一个很好的库:http://www.featureblend.com/javascript-flash-detection-library.html

  • 8

    我认为无法检测是否已安装闪存但已禁用 .

    如果有人禁用Flash,他们可能不想告诉它是否只是被禁用或根本没有安装 . 因此,浏览器会告诉您它“不可用” .

相关问题