添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

摘要:未安装一般使用检测中安装的情况,奇怪的是,目前即使没有安装,这段代码仍然可以检测到信息。已安装已启用未允许这种状态的问题在于,浏览器确实安装了,也可以检测到安装了。这种状态无法从中检测,因为结果没有任何异样。

chrome 更新太快了,文章的内容已过期!
chrome 更新太快了,文章的内容已过期!
chrome 更新太快了,文章的内容已过期!

随着chrome的更新,之前的一些依赖flash的代码逻辑可能不再准确了。最近做了一些测试,总结一下。

测试时间:2016年12月。测试版本:win chrome 55。

代码中,可能有一些功能是需要flash支持的,可能同时选用了其他技术,这时候就就要写一些逻辑去判断flash的状态,以便选择技术实现。

以目前的了解,可以把flash在chrome中的状态分成4种:

已安装被停用

已安装已启用未允许(当前域使用flash)

已安装已启用已允许

是否停用指的是 chrome://plugins 中设置是否停用flash:

是否允许指的是右上角出现阻断提示时的随手设置,或在 chrome://settings/content 中的Flash设置:

下面来分析下这4种状态。

1. 未安装

一般使用 navigator.plugins["Shockwave Flash"] 检测chrome中flash安装的情况,奇怪的是,目前即使没有安装flash,这段代码仍然可以检测到flash信息。

经查阅资料和验证,未安装flash的chrome中查看 chrome://plugins 插件信息,虽然有Adobe Flash Player的信息,但“位置”一项显示的是“internal-not-yet-present”:

而正常安装flash时:

两者代码的区别是这样的:

所以可以通过filename这个属性来检测是否安装了flash。

2. 已安装被停用

flash被停用时, navigator.plugins["Shockwave Flash"] 无法检测到flash信息:

所以这种状态很轻松就可以判断。

3. 已安装已启用未允许

这种状态的问题在于,浏览器确实安装了flash, navigator.plugins["Shockwave Flash"] 也可以检测到安装了flash。而 当前页面却不允许使用flash (chrome的限制策略)。

这种状态无法从 navigator.plugins 中检测,因为结果没有任何异样。

但因为浏览器限制了flash,所以flash对象是无法成功创建的。 可以设置定时器不断查询有没有创建成功,然后设置一个超时次数,比如50次,如果还没有创建成功的话,可以认为是创建超时,标明这种状态。

暂时没有想到更好的判断方法。

不过检测这种状态很有意义。用户是已经安装了flash的。只是未允许flash运行,这时候可以简单提示用户设置允许运行就可以。一般chrome拦截时,右上角会有拦截设置:

4. 已安装已启用已允许

这种状态一切正常,可以正常使用flash。上文已经提到,插件对象的 filename 字段会显示真正的文件名:

不过flash最终是要被取代的技术。保证flash相关代码稳定的同时,也要调研替代技术啦。

...修改window对象位置的属性和方法有很多。 IE, Safari, Opera, Chrome 都提供了screenLeft 和 screenTop属性,分别用于表示相对屏幕左边和上边的位置。 Firefox 则 screenX 和 screenY 属性中提供相同的窗口位置信息, Safari, Chrome 也同时支持这...

AWang

...:0, // Firefox浏览器内核 webkit:0, // google-> chrome 和apple->safari内核 khtml:0, // Konqueror(linux平台 中的 一个浏览器)的内核->KHTML opera:0, // Opera // 具体的版本号 KnewOne

...:0, // Firefox浏览器内核 webkit:0, // google-> chrome 和apple->safari内核 khtml:0, // Konqueror(linux平台 中的 一个浏览器)的内核->KHTML opera:0, // Opera // 具体的版本号 CrazyCodes

HTML5文件上传组件的深度剖析

...明为什么前面的测试结果,并发数只测试到了6,原因是 chrome 的最大并发数是6,当并发设置到7的时候,第7个请求是处于等待 状态 ,直到前面某个请求完成,才会开始有进度。 浏览器 HTTP 1.1 HTTP 1.0 ------------- ---------- ---...

xiangzhihong

JavaScript简明教程之浏览器,前端程序猿必看

...E浏览器,历来对W3C标准支持差。从IE10开始支持ES6标准; Chrome :Google出品的基于Webkit内核浏览器,内置了非常强悍的JavaScript引擎——V8。由于 Chrome 一经安装就时刻保持自升级,所以不用管它的版本,最新版早就支持ES6了; Sarafi...

explorer_ddf
  • #黑五#UltraVPS.eu:洛杉矶、英国、荷兰、德国、立陶宛等特价KVM VPS

    阅读 2010 · 2021-11-24 10:33

  • 【quickly-css】(极易上手)一款使用Sass构建的高效开发CSS库

    阅读 1104 · 2019-08-30 15:43

  • postcss-bem插件在webpack4以上版本报错处理 .moveTo is not a fu

    阅读 3063 · 2019-08-29 17:24

  • 2017文章总结

    阅读 3290 · 2019-08-29 14:21

  • removeAttribute getAttribute setAttribute

    阅读 2064 · 2019-08-29 13:59

  • 移动端判断用户是否安装客户端

    阅读 1568 · 2019-08-29 11:12

  • css学习归纳总结(一)

    阅读 2618 · 2019-08-28 18:00

  • sql 语句备忘录(walker)

    阅读 1160 · 2019-08-28 17:46

  •