2013-10-03 30 views
0

目前我使用$.browser.webkit$.browser.msie,因爲瀏覽器之間的輸入類型有很多獨特的UI差異,我不得不適應。試圖退休jquery遷移

具體來說:Chrome將我的範圍更改爲一個滑塊,IE不;並且我必須在IE時間類型上放置一個微調器,Chrome覆蓋了這一點。還有其他的,但這些是我最需要處理的。

測試這些差異而不是使用migrate lib的瀏覽器測試的首選方法是什麼? (我知道我可以直接查詢useragent,但我寧願查詢UI以查看是否需要添加微調器或滑塊等)。

+0

如果要測試html5元素的可用性,請在內存中創建類型爲date的輸入,並測試它是日期還是文本字段。這是一個常見問題 – mplungjan

+0

該字段顯示爲可用,但它們呈現完全不同。這是我想解決的渲染問題。 – Brian

+0

這是我試圖找出如何測試的元素的功能。 – Brian

回答

0

簡短回答,mplungjan的回答很接近但沒有我需要什麼。如果你看看IE11和Chrome都有支持的功能,你可以看到他們在哪裏提供完全不同的支持。所以我的解決方案最終被遷移lib檢測瀏覽器和版本,然後讓我的代碼覆蓋需要它的瀏覽器上的渲染。

這意味着我將保留一個瀏覽器字典和實現的功能,所以我的代碼可以智能地重寫爲字典指令。

至於不支持某項功能的情況,我會繼續使用功能的標準測試,該功能已運行,並且mplungjan已鏈接到最簡單的測試方法之一。不是最好的,但最簡單的。

切換到Twitter Bootstrap和Angular.JS用戶界面通過使用其他人員解決方案減少了一些這種奇怪。

+0

You不應該依靠瀏覽器檢測。有一件事我不明白。如果你已經有一個工作微調器,滑塊等,爲什麼不簡單地使用這些?我的意思是在每個瀏覽器。你不需要檢測任何東西。 – kapa

+0

問題是每個瀏覽器都以不同的方式呈現UI。 CSS只有這麼遠。爲了克服UI差異和瀏覽器兼容性,我儘可能使用Modernizr的功能檢測功能。所以現在我處於一個不正常工作的地步,我建立了一個compat lib,並且克服了lib的缺點。然而,這已經很久遠了,從那以後,我拋棄了整個事情,並使用Twitter Bootstrap + Angular.js作爲前端。 – Brian