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