【兼容】瀏覽器兼容那些事

     這段時間,經常會接到很多需要處理瀏覽器兼容問題的工作。開個玩笑的說,如果看到一個人的電腦裝了很多瀏覽器,那麼勇敢地懷疑他的崗位是不是web前端開發吧。有一段時間,我的電腦同時安裝了chrome、FF、360、IE、搜狗和YY瀏覽器,另外還有ietester用作調試不同版本的ie。

     瀏覽器兼容一事是前端的一大“痛處”,在前端工作裏面也佔有相當大的比例,每當接到測試部門反饋回來說出現瀏覽器兼容bug的時候,我的心就加了一塊石頭,哈哈哈。

     一般地,在產品發佈之前,都需要經過嚴格的測試、反饋、修復,方能上線。否則,即使這款產品很好,功能很強大。但卻不能在主流瀏覽器中很好地運行,這樣無疑就“屏蔽”了部分用戶,有可能會造成網站的流量、用戶體驗甚至是收益的降低。每當想到這些,即使遇到比較麻煩、棘手的兼容問題,都會想方設法地去解決問題了,O(∩_∩)O~

     有人說,處理瀏覽器兼容問題對有很多年開發經驗的人來說是很容易的,他們對問題的處理往往一針見血,這樣的工作者無疑是讓我佩服的,必須要向他們學習。

     但對於新手來說,一開始,我覺得只是沒有寫好<!DOCTYPE ***>文檔類型聲明導致部分瀏覽器以怪異模式來渲染網頁。對於調皮的IE瀏覽器,我試着增加一行兼容處理的meta,<meta http-equiv="X-UA-Compatible"content="IE=edge" >。這些設置可能對於某些問題來說是可行的解決方案,當然,對於一個標準的網頁來說,確實也應該如此設置,較爲嚴謹,避免出現更多的兼容bug。

     就最近的工作來說,我通過上述的2種方案仍然未能解決問題,尤其是IE不同版本的兼容問題。甚至是,測試部門的工作人員那邊出現了兼容問題,但我的電腦卻顯得比較“強悍”,無法重現(不能重現,很難修復bug的喲~)測試部門所提的bug,就算是使用了ietester來模擬,也是正常運行。後來被告知,不能完全相信ietester,有時候,ietester測也是不準的。這時候需要多方考證,多測,多發現bug,多想辦法

     爲了重現測試部門提的bug,我把本來是ie11的瀏覽器降級爲ie8,後來又出現了ie9專有的bug,又需要把瀏覽器升級爲ie9(這裏感嘆一下前端工作者的瀏覽器折磨,哈哈哈)。

     在調試的過程中,F12是少不了的。現在慢慢發現,其實很多瀏覽器兼容的bug,除了一些較爲常見的,成爲“慣例”的兼容問題,比如ie6的雙邊距問題,ie6、ie7、ie8專有的hack寫法,類似這些問題網上也給出了很多解決方案。

     更多地,是自身代碼的結構寫得不是很好,或者寫的不規範,在高版本的瀏覽器看起來貌似是沒問題,正常顯示,但對於低版本的瀏覽器,它們往往不能很好地識別一些不太標準的寫法,不能按照我們所預期的去顯示,也就是出現了兼容問題啦~~這時候不妨重新審視自己的代碼,慢慢找原因,多對比。當實在不能解決,時間還允許的情況下,可以考慮推倒以前做的東西,換種思維方式重新實現,兼容問題或許就這樣愉快地解決了。


Author:致知

Sign:路漫漫其修遠兮,吾將上下而求索。

發佈了110 篇原創文章 · 獲贊 95 · 訪問量 52萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章