我知道通过使用 SWFObject 库,我们可以找出是否安装了 Flash 播放器。但是没有任何外部库,它可能会安装或不使用 jquery 安装 Flash 播放器。它应该在主要浏览器(Chrome、Firefox、IE)中工作
问问题
1619 次
2 回答
0
简短的回答:并非没有严重的头痛。
长答案:SWFObject 也可以处理所有浏览器的小怪癖;手动映射它们将花费您比仅使用它更长的时间,并且您的版本很可能不会得到优化。
快速补丁:
var hasFlash = false;
try {
var fo = new ActiveXObject('ShockwaveFlash.ShockwaveFlash');
if(fo) hasFlash = true;
} catch(e) {
if(navigator.mimeTypes ["application/x-shockwave-flash"] != undefined) hasFlash = true;
}
这将尝试调用 IE ActiveX 版本 (IE6-7-8),如果失败,将查看浏览器的已知 mimetime 以了解 SWF 的 mimetype。如果它在那里,你可能有闪光灯。
于 2013-04-22T12:00:43.307 回答
0
在 SWF 对象库中,他们编写了代码来检查插件和 Activex 对象。
以下 if 条件用于检查插件
if (typeof navigator.plugins != "undefined" && typeof navigator.plugins["Shockwave Flash"] == "object") {
var ab = navigator.plugins["Shockwave Flash"].description;
if (ab && !(typeof navigator.mimeTypes != "undefined" && navigator.mimeTypes[q] && !navigator.mimeTypes[q].enabledPlugin)) {
}
}
以下 if 条件用于检查 ActiveX
if (typeof window.ActiveXObject != "undefined") {
try {
var ad = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
if (ad) {
ab = ad.GetVariable("$version");
if (ab) {
}
}
} catch (Z) {}
}
上面的代码写在 SWF 对象库中。现在我有一个疑问,插件条件可以在所有浏览器中工作,但 Activex 只能在 IE 中工作。SWF 对象库可以在所有浏览器中使用吗?
于 2013-04-22T13:24:09.710 回答