我知道通过使用SWFObject库,我们可以找到或不安装Flash播放器。但是没有任何外部库,它可能安装Flash播放器或不使用jquery.It应该在主流浏览器(Chrome,Firefox,IE)中工作
答案 0 :(得分: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),如果失败,将查看浏览器的已知mimetimes以获取SWF的mimetype。如果它在那里,你可能有闪光灯。
答案 1 :(得分: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 Object library will work in all the browsers?