IE內嵌google chrome frame解決瀏覽器兼容問題


參考文獻:

http://www.pseudowired.com/2012/12/04/tomcat-http-header-manipulation/(html中自動添加使用chrome的header)

http://www.baike.com/wiki/Google+Chrome+Frame(google chrome frame介紹)

http://www.cnblogs.com/Libra/archive/2009/03/24/1420731.html

項目背景:

我們的項目中使用了highcharts和svg相關的內容,所以要求至少要IE9才可以,或者使用firefox、chrome等其他瀏覽器。但是客戶是國企,他們使用的都是windows自帶的瀏覽器,普遍是IE7和IE8,有些甚至還是windows xp自帶的IE6,讓人倍感崩潰。

當時建議客戶升級IE版本,升級到至少IE9,但是他們的OA系統支持只IE7跟IE8,這樣的事情還真有,我自己公司就是這樣子。所以升級的提議被否決。

然后建議客戶下載chrome瀏覽器,但是客戶說他們很多人都是訪問不了外網的,而且領導們都懶得下載瀏覽器,太麻煩。

無奈執行我就只能選擇以下的解決方案

解決方案:

瀏覽器判斷

在web頁面上做瀏覽器判斷,如果瀏覽器版本低於<=IE8,那么就跳轉頁面,轉到下載chrome瀏覽器或者下載google chrome frame的頁面

<script type="text/javascript">
$(document).ready(function(){
    var bro=$.browser;
    var binfo="";
    if(bro.msie) 
    {
        binfo= "Microsoft Internet Explorer " +bro.version;
        if(eval(parseInt($.browser.version))<9)
        {
              // alert(binfo);
               location.href='./browser.html'
        }          
    }
    if(bro.mozilla) 
    {
        binfo= "Mozilla Firefox "+bro.version;
    }
    if(bro.safari)
    {
        binfo= "Apple Safari "+bro.version;
    }
    if(bro.opera) 
    {
        binfo= "Opera "+bro.version;
    }
   //alert(binfo);
})

</script>

google chrome frame的介紹

在文獻2種我們可以大體知道google chrome frame是個什么東西。Google Chrome Frame,官方的正式中文名稱為“谷歌瀏覽器內嵌框架”。Google Chrome Frame是Google推出的一款免費的Internet Explorer專用插件。使用此插件,用戶可以通過Internet Explorer的用戶界面,以Chrome內核的渲染方式瀏覽網頁。在運行插件之后,IE瀏覽器將獲得Chrome的性能和功能。它將使用Chrome的WebKit 引擎處理網頁,另外也支持IE所沒有的HTML5等其他技術。

其實是一種掛羊頭(IE)賣狗肉(Chrome)的東西,或者說是披着羊皮的狼。但是我們就是需要這匹狼來給我們解決問題。

但是我們在安裝完這個插件以后發現,我們使用IE瀏覽器打開我們的網頁,還是給我跳轉到下載瀏覽器界面,我在首頁上面使用alter調試,判斷當前瀏覽器發現還是IE8。后來知道如果要是IE啟用chrome核心有兩種方法:(文獻2中有介紹)

  1. 修改注冊表,從此以后IE全部使用chrome核心。(與業務需求不符合,客戶還指望着使用IE8去訪問他們的OA呢)
  2. 在web頁面上面添加類似於X-UA-Compatible的標簽,主動讓IE使用調用chrome核心。(這正是我們當前需要的)
<meta http-equiv="X-UA-Compatible" content="chrome=1">

根據修改,我在自己的web頁面上面添加了一下內容,其含義如下:如果當前瀏覽器版本是<=IE8的,那么給我使用chrome,如果不是,則使用IE。

 <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=IE8">

urlrewritefilter的使用

歡歡欣欣做完以上內容,我想這樣我就可以訪問自己的網站的了把,可是悲哀的發現,只有首頁是使用chrome核心的,其他沒有加X-UA-Compatible標簽的頁面還是使用IE核心。這尼瑪太蛋疼了,難道讓我找出出所有html頁面,然后一個一個手動加上去,這樣的事情是人干的嗎?想着肯定有人跟我一樣碰到同樣坑爹的事情,所以就google搜索了一下,最后找到了文獻1。看到老外形容IE瀏覽器的詞,suck,fuck,shit,就能看出他是多恨IE了。按照該作者的介紹,我知道了urlrewritefilter,來到他的官方網站,跟着教程去一步一步執行。ok,最后解決問題了。

這個東西的整體思路就是,不管你是發request還是response請求,最后他都會在你的請求頁上面加上你設定的內容,我這里設定的內容就是 <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=IE8">

最后google chrome frame這個東西到2014年就不再官方支持了,官方推薦我們下載最新的google瀏覽器。不過我想應該不會影響使用。

 


免責聲明!

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



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