摘要:未安裝一般使用檢測(cè)中安裝的情況,奇怪的是,目前即使沒(méi)有安裝,這段代碼仍然可以檢測(cè)到信息。已安裝已啟用未允許這種狀態(tài)的問(wèn)題在于,瀏覽器確實(shí)安裝了,也可以檢測(cè)到安裝了。這種狀態(tài)無(wú)法從中檢測(cè),因?yàn)榻Y(jié)果沒(méi)有任何異樣。
前前言
chrome 更新太快了,文章的內(nèi)容已過(guò)期!
chrome 更新太快了,文章的內(nèi)容已過(guò)期!
chrome 更新太快了,文章的內(nèi)容已過(guò)期!
隨著chrome的更新,之前的一些依賴(lài)flash的代碼邏輯可能不再準(zhǔn)確了。最近做了一些測(cè)試,總結(jié)一下。
測(cè)試時(shí)間:2016年12月。測(cè)試版本:win chrome 55。
正文代碼中,可能有一些功能是需要flash支持的,可能同時(shí)選用了其他技術(shù),這時(shí)候就就要寫(xiě)一些邏輯去判斷flash的狀態(tài),以便選擇技術(shù)實(shí)現(xiàn)。
以目前的了解,可以把flash在chrome中的狀態(tài)分成4種:
未安裝
已安裝被停用
已安裝已啟用未允許(當(dāng)前域使用flash)
已安裝已啟用已允許
是否停用指的是chrome://plugins中設(shè)置是否停用flash:
是否允許指的是右上角出現(xiàn)阻斷提示時(shí)的隨手設(shè)置,或在chrome://settings/content中的Flash設(shè)置:
下面來(lái)分析下這4種狀態(tài)。
1. 未安裝一般使用navigator.plugins["Shockwave Flash"]檢測(cè)chrome中flash安裝的情況,奇怪的是,目前即使沒(méi)有安裝flash,這段代碼仍然可以檢測(cè)到flash信息。
經(jīng)查閱資料和驗(yàn)證,未安裝flash的chrome中查看chrome://plugins插件信息,雖然有Adobe Flash Player的信息,但“位置”一項(xiàng)顯示的是“internal-not-yet-present”:
而正常安裝flash時(shí):
兩者代碼的區(qū)別是這樣的:
所以可以通過(guò)filename這個(gè)屬性來(lái)檢測(cè)是否安裝了flash。
2. 已安裝被停用flash被停用時(shí),navigator.plugins["Shockwave Flash"]無(wú)法檢測(cè)到flash信息:
所以這種狀態(tài)很輕松就可以判斷。
3. 已安裝已啟用未允許這種狀態(tài)的問(wèn)題在于,瀏覽器確實(shí)安裝了flash,navigator.plugins["Shockwave Flash"]也可以檢測(cè)到安裝了flash。而當(dāng)前頁(yè)面卻不允許使用flash(chrome的限制策略)。
這種狀態(tài)無(wú)法從navigator.plugins中檢測(cè),因?yàn)榻Y(jié)果沒(méi)有任何異樣。
但因?yàn)闉g覽器限制了flash,所以flash對(duì)象是無(wú)法成功創(chuàng)建的。可以設(shè)置定時(shí)器不斷查詢(xún)有沒(méi)有創(chuàng)建成功,然后設(shè)置一個(gè)超時(shí)次數(shù),比如50次,如果還沒(méi)有創(chuàng)建成功的話(huà),可以認(rèn)為是創(chuàng)建超時(shí),標(biāo)明這種狀態(tài)。
暫時(shí)沒(méi)有想到更好的判斷方法。
不過(guò)檢測(cè)這種狀態(tài)很有意義。用戶(hù)是已經(jīng)安裝了flash的。只是未允許flash運(yùn)行,這時(shí)候可以簡(jiǎn)單提示用戶(hù)設(shè)置允許運(yùn)行就可以。一般chrome攔截時(shí),右上角會(huì)有攔截設(shè)置:
4. 已安裝已啟用已允許這種狀態(tài)一切正常,可以正常使用flash。上文已經(jīng)提到,插件對(duì)象的filename字段會(huì)顯示真正的文件名:
補(bǔ)充不過(guò)flash最終是要被取代的技術(shù)。保證flash相關(guān)代碼穩(wěn)定的同時(shí),也要調(diào)研替代技術(shù)啦。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/86604.html
摘要:僅限數(shù)值表示新窗口的高度。此時(shí)只要檢查這個(gè)返回值就可以確定彈窗是否被屏蔽。返回一個(gè)布爾值,代表用戶(hù)選擇還是返回一個(gè)字符串或者,輸入了值并確定,返回字符串,其他方法關(guān)閉返回打印查找對(duì)話(huà)框。 ECMAScript是JavaScript的核心,但如果要在Web中使用JavaScript,那么BOM(瀏覽器對(duì)象模型)則無(wú)疑才是真正的核心。 W3C為了把瀏覽器中JavaScript最基本的部分...
摘要:博文模塊增強(qiáng)模式進(jìn)行客戶(hù)端檢測(cè)標(biāo)簽博文常用的檢測(cè)方式為能力檢測(cè)用戶(hù)代理檢測(cè)這里有用戶(hù)代理檢測(cè)檢測(cè)插件非瀏覽器是一個(gè)包含瀏覽器插件的數(shù)組這個(gè)數(shù)組的每一項(xiàng)都包含插件的名字插件的描述插件的文件名插件所處理的類(lèi)型數(shù)量檢測(cè)插件在中無(wú)效方法用于把字符串 [博文]模塊增強(qiáng)模式進(jìn)行客戶(hù)端檢測(cè) 標(biāo)簽: 博文 常用的檢測(cè)方式為: [ ] 1 . 能力檢測(cè) [ ] 2 . 用戶(hù)代理檢測(cè) 這里有 2 ...
摘要:瀏覽器對(duì)象可以獲取瀏覽器提供的很多對(duì)象,并進(jìn)行操作。對(duì)象不但充當(dāng)全局作用域,而且表示瀏覽器窗口。對(duì)象表示當(dāng)前頁(yè)面的信息。由于在瀏覽器中以形式表示為樹(shù)形結(jié)構(gòu),對(duì)象就是整個(gè)樹(shù)的根節(jié)點(diǎn)。這個(gè)行為由瀏覽器實(shí)現(xiàn),主流瀏覽器均支持選項(xiàng),從開(kāi)始支持。 由于JavaScript的出現(xiàn)就是為了能在瀏覽器中運(yùn)行,所以,瀏覽器自然是JavaScript開(kāi)發(fā)者必須要關(guān)注的?!緦?xiě)的比較多,難免有疏漏的地方,希望...
閱讀 2384·2021-11-24 10:33
閱讀 1451·2019-08-30 15:43
閱讀 3338·2019-08-29 17:24
閱讀 3552·2019-08-29 14:21
閱讀 2284·2019-08-29 13:59
閱讀 1790·2019-08-29 11:12
閱讀 2894·2019-08-28 18:00
閱讀 1926·2019-08-26 12:17