4

我正在为图表使用谷歌可视化,它在 IE8 中渲染得不是很好,在 IE6 中根本不起作用。

我添加了谷歌浏览器框架,如果用户安装插件谷歌可视化工作完美。

有没有办法强制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]-->
4

2 回答 2

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.'
    );
}
于 2011-09-23T15:06:48.303 回答
5

不,您不能强迫用户 - Google Chrome Frame 常见问题解答中的最佳选择:

如何判断用户是否安装了 Google Chrome Frame?

Google Chrome Frame 将“chromeframe/XXXX”标记添加到 User-Agent 标头,以便您可以通过这种方式检查它的存在。如果 Google Chrome Frame 不存在,您可以选择提示或显示后备内容。有关 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 。

于 2011-09-23T14:41:48.863 回答