放下包袱,解決低版本兼容問題
這是一個老生常談的問題,自然解決這個問題的方案也比較多,下面整理了一些解決方法:
1.強制使用高版本渲染模式。
強制使用Edge模式來解析網頁代碼
強制使用瀏覽器內核(如果安裝了)
問題:仍然會有部分低版本用戶無法正常渲染。治標不治本。
2.css hack針對不同瀏覽器編不同的代碼
條件注釋,很常用。
//ie6
//小于等于ie9
屬性前綴,很多 不一一列舉了。
-color:#000; //ie6
*-color:#000; //ie6 ie7
能夠解決一些問題,不能使用瀏覽器的新特性。一般適用于不太復雜的頁面。
3.js/css兼容插件
以下列舉一些常用的
:使瀏覽器兼容HTML5標簽語法。
:A fast & for min/max-width CSS3 Media (for IE 6-8, and more)
bsie:在IE6上支持大部分的特性。
IE-CSS3/PIE:使ie6-9支持CSS3。
在利用上面hack方式下,針對低版本瀏覽器加載相應插件。
能解決大部分的兼容性問題。需要額外加載JS/CSS文件。
4.終極方案:低版本提示升級。判斷瀏覽器版本,低版本的瀏覽器提示升級瀏覽器版本低怎么辦,或強制跳轉到升級頁面。
為什么要強制提示升級的理由:
1.低版本瀏覽器份額已經很小,逐漸減小。
百度統計2016年數據: ie6 2.2%;ie7 4.4%;ie8 17.06%;ie9 5.58%。
ie下降趨勢圖:
操作系統:win xp逐步淡出(ie6)瀏覽器版本低怎么辦,win 10用戶越來越多(使用Edge)
2.微軟徹底放棄了ie品牌,力推Edge。3.為了兼容低版本的瀏覽器浪費大量的時間和精力。4.html5的新特性無法使用。5.如果你在看這篇文章,應該還會列出一些。
放棄低版本瀏覽器用戶,強制升級。提供JS代碼:
頁面頭部提示:
//以下代碼 放在頁面中或js文件中 都可以
(function(w){if(!("WebSocket"in w&&2===w.WebSocket.CLOSING)){var d=document.createElement("div");d.className="browsehappy";d.innerHTML='\u4f60\u7684\u6d4f\u89c8\u5668\u5b9e\u5728\u592a\u592a\u65e7\u4e86\uff0c\u592a\u592a\u65e7\u4e86 \u7acb\u5373\u5347\u7ea7';var f=function(){var s=document.getElementsByTagName("body")[0];if("undefined"==typeof(s)){setTimeout(f,10)}else{s.insertBefore(d,s.firstChild)}};f()}}(window));
直接跳轉
//放在頁面中或js文件中 都可以
(function(w){if(!("WebSocket"in w&&2===w.WebSocket.CLOSING)){w.location.replace("http://browsehappy.osfipin.com/");}}(window));
也可以使用條件注釋的方式放在html頁面中。