2014-02-10 22 views
2

在我的網絡應用程序中,我使用透明模糊濾鏡來覆蓋視頻頂部。除IE10/11以外的所有瀏覽器均可使用。由於模糊過濾器是一個CSS屬性,因此我無法真正進行正確的特徵檢測,因爲我應該這樣做。相反,我用這:通過查找「Trident」字符串來檢測IE

if(navigator.userAgent.indexOf("Trident")>-1) { // IE ... }

如果檢測到IE瀏覽器,我使用的是不同的過濾器(非模糊)的作品出現。

有沒有這種代碼可能導致誤報的情況?是否有任何使用Trident引擎的模糊兼容瀏覽器?

編輯:我知道,IE8和IE9有自己的模糊濾鏡,但一致的緣故,我們決定使用相同的替代性過濾器爲IE瀏覽器的所有版本。

+1

我相信你可以使用http://modernizr.com/檢查CSS濾鏡支持 –

+0

我同意與尤里的原則,即Modernizr的(或測試的該功能的方法)更有意義,然後對UA檢查。然而,加載modernizr,只是爲了測試模糊過濾器可能是矯枉過正的(特別是如果你沒有在你當前的項目中使用它)。你有沒有考慮過這樣的測試:if(document.documentElement.style.msFilter)...(msFilter,webkitFilter等)//做些什麼 – Jack

+0

感謝評論,Jack!因此,根據您的回答,可以使用Javascript檢測當前瀏覽器中是否可以使用特定樣式?請詳細說明如果是這樣,我肯定會更喜歡使用功能檢測而不是瀏覽器大檢測。 編輯:不,我沒有使用modernizr。模糊是我試圖跟蹤的唯一依賴於瀏覽器的功能,所以是的,加載它會太多。 –

回答

0

您可以檢測過濾器的支持,在回答這個問題描述: How can I feature-detect CSS filters?

+0

根據系統的不同,過濾器可能是CSS過濾器,也可能是SVG過濾器(javascript-determined)。某些瀏覽器(IE和Opera)雖然允許使用SVG過濾器,但不允許它們過濾非SVG內容。這並不能真正回答我問的問題。 –

相關問題