Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我可以强制IE用户安装谷歌Chrome框架插件吗_Javascript_Internet Explorer_Google Chrome Frame - Fatal编程技术网

Javascript 我可以强制IE用户安装谷歌Chrome框架插件吗

Javascript 我可以强制IE用户安装谷歌Chrome框架插件吗,javascript,internet-explorer,google-chrome-frame,Javascript,Internet Explorer,Google Chrome Frame,我正在使用谷歌图表可视化,它在IE8中呈现得不太好,在IE6中根本不起作用 我添加了GoogleChrome框架,如果用户安装了插件,GoogleVisualization将完美工作 有没有办法强迫IE用户安装GFC?现在它是可选的。我阅读了文档,似乎没有办法通过GFCInstall.check()函数调用来配置它 这是我目前的代码: <!--[if IE]> <script type="text/javascript" src="http://ajax.g

我正在使用谷歌图表可视化,它在IE8中呈现得不太好,在IE6中根本不起作用

我添加了GoogleChrome框架,如果用户安装了插件,GoogleVisualization将完美工作

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

否您不能强制用户-您的最佳选择来自:

如何判断用户是否安装了Google Chrome框架

Google Chrome Frame在用户代理标题中添加了一个“chromeframe/X.X.X.X”标记,这样您就可以通过这种方式检查它的存在。如果Google Chrome框架不存在,您可以选择提示或显示回退内容。有关用户代理标头的更多信息,请参阅

我们还提供了一个JavaScript库,您可以使用它来测试是否安装了Google Chrome Frame,如果没有,则提示用户安装它。有关如何使用和自定义JavaScript库的更多详细信息,请参阅


几乎可以肯定,通过功能嗅探来实现这一点会更好。假设获得良好可视化效果所需的功能是
支持,请嗅探该功能,而不是特定的浏览器:

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.'
    );
}

你不能强迫用户安装任何东西。从某种程度上说,这是非法的-如果你作为一个用户,正在你过时的浏览器上安装兼容层,为什么不更新你的浏览器呢?我知道我不能强迫他们安装,但如果他们不安装,我不能让他们使用该网站…我更希望用户升级那里的浏览器,但这是一场更难打的战争fight@AndreasCarlbom我能想到的一个例子是,一家公司不允许使用其他浏览器。Chrome Frame可以在没有管理员权限的情况下安装,因为它不涉及系统/程序文件。如果未安装Chrome Frame,我可以将Chrome Frame安装菜单配置为始终显示在登录面板的顶部吗。现在,菜单允许用户拒绝安装。如果他们拒绝安装,我不希望他们能够登录到我的应用程序。您可以随时检查用户代理标题,如果
chromeframe/X.X.X
不存在,则隐藏您的登录面板,并显示“这对Chrome框架最有效”消息。它所指的条件是OP希望安装IE特定插件,用于解决IE特定的限制。我认为嗅探功能并不能真正解决这个问题。@jalf:这不是IE特有的限制。在任何不支持相关图形功能(画布或SVG,具体取决于实现方式)的浏览器X上,可视化将失败。解决方案是切换到支持它的浏览器Y。将问题限制在[X=IE8,Y=ChromeFrame]是不必要和不可取的。