我试图检测闪存支持,并试图按照下面的答案进行下去:跨浏览器Javascript中的Flash检测
我的代码如下所示,但我总是得到相同的错误: swfobject未定义。我不应该明白这一点,因为我正在支持闪存(chrome和firefox)的浏览器上尝试。
if(swfobject){
console.log("you have swfobject.");
if(swfobject.hasFlashPlayerVersion("1")){
console.log("You have flash!");
}
else{
console.log("You do not flash :(");
}
}else{
console.log("you don't have swfobject");
}这是最新浏览器的问题吗?还有其他方法来检测吗?
发布于 2015-06-01 10:40:43
闪存上的MDN页面带领我走过了一条完全不同的道路:
if(navigator.mimeTypes["application/x-shockwave-flash"]){
var plugin = navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin;
var description = plugin.description;
var versionArray = description.match(/[\d.]+/g);
var flashVersionOSXScriptable = 12;
var flashVersion = parseInt(versionArray[0]);
if(navigator.userAgent.indexOf("Mach-O")==-1){
if(flashVersion >= flashVersionOSXScriptable){
console.log("you have flash");
}else{
console.log("you don't have flash");
}
}
}else{
console.log("you don't have flash");
}发布于 2015-06-01 16:19:52
如果未定义swfobject,则丢失所需的JavaScript文件。您可以通过CDN在这里加载https://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js
发布于 2015-06-01 09:47:34
尝试检查typeof,object,如下所示:
if(typeof swfobject != "undefined"){ //Check if type of the object is undefined
console.log("you have swfobject.");
if(swfobject.hasFlashPlayerVersion("1")){
console.log("You have flash!");
}
else{
console.log("You do not flash :(");
}
}else{
console.log("you don't have swfobject");
}https://stackoverflow.com/questions/30570014
复制相似问题