支持Flash vs.安装Flash
Flash support vs. Flash installed
是否有一种方法(在JavaScript中)来检测以下两个场景之间?
- 设备支持Flash,但未安装Flash
- 设备不支持Flash(即:iPad, iPhone)
我知道如何检测是否安装了Flash,我知道如何检测iPad或iPhone,但我想找到一种方法来检测设备是否支持Flash,而不使用任何类型的白名单或黑名单。
您可以检测是否安装了flash。Adobe提供了相应的Javascript代码。
您无法检测是否支持flash(例如可用),但未安装。根据定义,如果未安装flash,则设备上没有任何关于是否可以安装flash的指示。你可以看到为什么会这样,因为一个设备今天可能没有flash,没有flash可用,然后flash可能会在以后可用,而不需要对设备本身进行任何更改。因此,设备本身不可能知道flash已经为它提供了。
知道flash是否可用的唯一方法是维护您自己的大型设备列表。因为它是不断变化的,你甚至不能把它放入你的javascript中。你必须把它放在服务器上,并通过ajax获取信息。
一个快捷方式(听起来你已经想到了)是检测是否安装了flash,如果没有,看看该设备是否是少数高容量设备(Android, iDevice, Windows Phone, Windows平板电脑等)之一,并使用你预先构建的知识,这些设备是否有flash可用。对于其他设备,你就不知道了。
No。
最好的方法是存储受支持的用户代理的映射数组,然后在getSupported()
方法中使用它,该方法将用户代理与受支持的用户代理列表和不受支持的用户代理列表相匹配。
No。您可能安装了flash,也可能没有,但无法知道设备理论上是否支持flash。
毕竟,地狱可能会冻结,苹果可能会为iOS发布Flash。或者,用户运行的是某种奇怪的Android版本,或者在安腾上运行Unix版本的Firefox,但没有Flash播放器。你必须维护所有可用的flash播放器的列表,这是乏味的。
这里可能有点晚了,但是这一小段代码可以帮助检查Flash是否可用:
function is_flash_support() {
var flash_support = false;
try {
var fo = new ActiveXObject('ShockwaveFlash.ShockwaveFlash');
if(fo) {
flash_support = true;
}
} catch (e) {
if(navigator.mimeTypes && navigator.mimeTypes['application/x-shockwave-flash'] != undefined && navigator.mimeTypes['application/x-shockwave-flash'].enabledPlugin) {
flash_support = true;
}
}
return flash_support;
}
- 可以前端maven插件使用节点,npm已经安装
- 使用javascript在Flash中加载外部图像
- 使用JavaScript检测Flash
- 在Meteor项目中安装并包含npm模块后出错
- Flash Uploadify在调用我的MVC控制器时没有保留会话/授权
- 无法安装节点sass相关性
- 如何从javascript检查Flash CAN是否安装在浏览器中
- 使用 JavaScript 自动安装 Flash Player
- 单击“保存到CSV”按钮后显示通知(如果未安装Flash Player)
- 如何使用JS检查是否安装了flash
- 有没有办法知道Flash Player是否安装了SWFObject
- 如何检测移动浏览器是否可以安装Flash
- 如何检查浏览器上是否安装了macromedia flash播放器
- 如何找出是否安装了Adobe Flash播放器,从Javascript
- 如何通知用户flash未安装(没有javascript)
- 支持Flash vs.安装Flash
- 如何检查Flash播放器安装或不使用Javascript没有任何嵌入式库
- 如何使用javascript发现客户端机器安装了flash播放器
- 用于检测是否安装了flash的一行JavaScript
- 检测是否安装了没有js的flash