5

我需要检查是否在 IE/Chrome 中安装并启用了 Flash 播放器。

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

!!(navigator.mimeTypes["application/x-shockwave-flash"] || window.ActiveXObject && new ActiveXObject('ShockwaveFlash.ShockwaveFlash'));

两者都适用于除 Chrome 之外的所有操作系统中的所有浏览器。对于 chrome,即使我禁用了 Flash Player,它也会给出正确的结果。但是对于 IE,它在不同系统上的行为不同,也根本无法在 IE6 中运行。如果安装并启用了 Flash,如何检查 IE/Chrome。

4

2 回答 2

3

写一整件事太累了,所以这是我不久前写的一些闪光/银光检测的小提琴。如果您不需要它,请随意使用它并移除 silverlight 部分。

它基本上归结为像这样循环遍历所有插件:

function get (name) {
    for (var i = 0, l = navigator.plugins.length; i < l; i++)
    {
        if (navigator.plugins[i].name === name) {
            return navigator.plugins[i];
        }
    }
    return undefined;
}

http://jsfiddle.net/nQ7fk/

于 2013-07-10T22:25:21.070 回答
2

我想您可能已经排除了这一点,但我建议您使用 swfobject 来管理您的闪存插入:

它确实具有让您检测是否安装了闪存的功能,它还可以触发安装过程并以跨浏览器、符合标准的方式管理您的一般闪存插入。

于 2013-07-10T15:52:40.077 回答