2011-05-17 85 views
2

與Android瀏覽器一樣,Chrome已經捆綁了一段「原生」flashblock。 swfobject報告說即使該塊已爲所有站點啓用,Flash播放器也可用。我想要做的就是檢測用戶是否使用原生Flashblock,並提供一些消息。某些服務(如Facebook JS SDK)在沒有爲跨域通信啓用閃存的情況下無法工作,也不提供檢測失敗的方法。我知道如何檢測原始Flashblock的擴展/插件,但本機版本不會出現在navigator.plugins列表中。如何檢測Chrome(以及其他)中是否啓用了本機FlashBlock?

有沒有辦法檢測用戶是否在啓用本機flashblock的情況下運行?

回答

3

不幸的是,在Chrome中沒有插件加載系統的編程接口。

您可以做的最好的方式是加載一個Flash對象,並通過一些明確定義的方法(GetVariable("$version")是典型示例)來確定成功。在你擔心的情況下,閃存將顯示在navigator.plugins中,但不會成功加載測試插件。無論如何,進行這種檢查真的不是一個壞主意,因爲閃存可能無法加載的原因很多,超出了閃存封鎖(本地或其他方式)。

+0

我想補充一點,這種事情可能是一個合理的功能請求:http://new.crbug.com/是正確的地方,如果你決定這是你想要在未來的版本中要求的東西的Chrome。 – 2011-05-18 13:36:12

+1

我將它添加爲一個錯誤,以下是我如何解決它,感謝您的答案:https://gist.github.com/981510。再次感謝! – Andrew 2011-05-19 19:25:31

相關問題