2011-09-23 78 views
4

我使用谷歌可視化的圖表,它不能很好地在IE8中呈現,並且在IE6中完全不起作用。我可以強制IE用戶安裝谷歌Chrome瀏覽器框架插件

我添加了谷歌瀏覽器框架,並且如果用戶安裝插件,Google可視化工作完美無瑕。

有沒有一種方法可以強制IE用戶安裝GFC?現在它是可選的。我閱讀了文檔,似乎沒有辦法通過GFCInstall.check()函數調用來配置它。

這裏是我當前的代碼:

<!--[if IE]> 
    <script type="text/javascript" 
    src="http://ajax.googleapis.com/ajax/libs/chrome-frame/1/CFInstall.min.js"></script> 

    <style> 
    .chromeFrameInstallDefaultStyle { 
     border: 5px solid blue; 
     top:55%; 
    } 
    </style> 



    <script> 
    // The conditional ensures that this code will only execute in IE, 
    // Therefore we can use the IE-specific attachEvent without worry 
    window.attachEvent("onload", function() { 
     CFInstall.check({ 
     mode: "inline" 
     }); 
    }); 
    </script> 
    <![endif]--> 
+5

你不能強迫用戶安裝任何東西。這將是非法的 –

+2

在某種程度上正確的說明 - 如果您作爲用戶正在您的過時瀏覽器的頂部安裝兼容層,爲什麼不更新瀏覽器? –

+0

我知道我不能強迫他們安裝它,但我不能讓他們使用該網站,如果他們不... –

回答

6

不,你不能強制用戶 - 從Google Chrome Frame FAQ您的最佳選擇:

如何判斷用戶是否已經安裝了谷歌瀏覽器內嵌框架?

Google Chrome Frame爲User-Agent標頭添加了一個'chromeframe/X.X.X.X'標記,以便您可以通過這種方式檢查它的存在。如果Google Chrome框架不存在,您可以選擇提示或顯示備用內容。有關User-Agent標題的更多信息,請參閱http://www.chromium.org/developers/how-tos/chrome-frame-getting-started/understanding-chrome-frame-user-agent

我們還提供了一個JavaScript庫,可用於測試Google Chrome Frame是否已安裝,如果沒有,則提示用戶安裝它。有關如何使用和自定義JavaScript庫的更多詳細信息,請參見http://www.chromium.org/developers/how-tos/chrome-frame-getting-started

+0

如果未安裝,我可以將Chrome框架安裝菜單配置爲始終顯示在我的登錄面板頂部。現在菜單允許用戶拒絕安裝。如果他們拒絕安裝,我不希望他們能夠登錄到我的應用程序。 –

+1

您可以隨時檢查User-Agent標題,如果是'chromeframe/X.X.X。X'不存在隱藏您的登錄面板,而是顯示'這最適用於Chrome框架'消息。 –

+0

這將工作的感謝 –

7

這幾乎肯定會更好地通過能力嗅探來做到這一點。假設該功能,你需要得到很好的可視化是<canvas>支持,嗅探,與其特定的瀏覽器:

if (!('width' in document.createElement('canvas'))) { 
    document.write(
     'The visualisations on this page don\'t work well in your current browser. '+ 
     'Please upgrade to a modern browser such as IE9, Firefox, Opera, Safari or '+ 
     'Chrome, or install Chrome Frame for earlier IE versions.' 
    ); 
} 
+0