X-UA-Compatible 解決IE瀏覽器樣式不兼容問題


 最近遇到一個頭疼的事情,就是ie瀏覽器不兼容問題,改起來真的叫一個頭疼, 沒辦法, 還是得改, 雖說ie瀏覽器不好用, 很多詬病,一直被開發人員所吐槽,但是沒辦法, IE瀏覽器在全球還是占很大一部分市場,所以, 只要有ie存在,就會有瀏覽器不兼容問題。好了,不扯遠了, 來看一下如何解決IE瀏覽器不兼容的問題吧。

問題:

      項目中有一個上傳圖片的功能,並可以實時查看上傳的圖片,為了提高用戶的體驗度,我使用的是ajax+html5靜態上傳圖片,從文檔流中加載圖片(上傳的圖片沒有直接傳到后台,點擊提交按鈕才去提交圖片),本來是一個“高大上”的功能,在Chrome瀏覽器上測試那叫一個順暢, 結果項目快交付的時候, 發現客戶使用ie瀏覽器, 結果“高大上”的上傳功能成了“bug”了,心里瞬間一萬頭草泥馬奔騰而來,為了解決不兼容問題, 可謂是“踏破鐵鞋無覓處,得來費了不少功夫”。

 

解決辦法:

        解決辦法有兩種,一個是從客戶端下手,一個是從服務器下手, 首先來講解一下從客戶端下手的方法,

一、客戶端解決辦法:

 

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

 

 


 

使用X-UA-Compatible屬性,在將解屬性前,先來看看百度的頁面,

X-UA-Compatible 解決IE瀏覽器樣式不兼容問題

 

百度的頁面也是用了<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">標簽,

 

 

 

這個標簽的作用是:

 

1. X-UA-Compatible為我們定義了瀏覽器的渲染方式;

 

2.如果存在客戶端Chrome Frame並啟用,那么瀏覽器訪問頁面會被Chrome內核渲染(這一點沒太大意義,因為你開發的項目不能要求用戶在客戶端來安裝Chrome Frame);也就是說IE瀏覽器變身Chrome是可以的,但前提是客戶端安裝了Chrome Frame,如果客戶端安裝了Chrome,那還有ie什么事;

 

3.使用IE內核瀏覽器來訪問,會渲染至該瀏覽器的最高版本,比如你使用IE11瀏覽器,那么就算在兼容模式切換至IE8,但仍會渲染成IE11的樣子(當然IE8瀏覽器是不會渲染成IE11的,只能渲染內核的最高版本)。

 

 

 

二、服務器端解決辦法:

 

可以在服務器端設置IIS https響應頭,起始原理和方法一聽相似,就是服務器響應的時候告訴ie瀏覽器使用指定內核來渲染 (使用ie多少是由我們控制的,但是不能高於瀏覽器的最高內核)。

 

 

 

具體設置方法:打開 IIS-》選擇一個站點-》雙擊右側的 HTTP響應表頭

設置IIS https響應頭

 

雙擊下圖所所示,服務器端設置IIS https響應頭

 

 

名稱:X-UA-Compatible

 

值:IE=EmulateIE7(如果填寫IE=EmulateIE8,表示頁面使用ie8的內核,依次類推。)

 

X-UA-Compatible

然后點擊確定就好了。

 

原文鏈接:https://www.51baidu.com.cn/Home/Detail/2511

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM