Google Chrome浏览器框架是否已安装并启用?

时间:2013-02-03 11:58:23

标签: javascript internet-explorer google-chrome-frame

如何检测是否已安装并启用Google Chrome Frame(GCF)?欢迎使用任何javascript或css类型的解决方案。 (严格禁止使用其他框架和下载的非膨胀政策。)

我正在构建一个使用HTML 5功能的网站,并非所有这些功能都受到Microsoft Internet Explorer< v10(至少)。我有一个MSIE 9或更早版本的支票(javascript),但如果安装了GCF,这一点就不好了。如果安装并启用了GCF,应用程序应该以愉快的方式运行,而不用担心它在MSIE中运行。

我一直在谷歌搜索,看起来像navigation.plugins()可能提供解决方案,但后来我需要更多的信息来专门检查GCF;所以我还不知道如何使用它。如上所述,我不限制navigation.plugins()的答案。我只是说,就我自己而言;所以,如果你知道如何引用这个特定的插件,这是一个可能的解决方案。

3 个答案:

答案 0 :(得分:2)

您应该考虑使用Browser Feature Detection而不是浏览器嗅探。此方法将允许您确定浏览器是否支持您的应用程序所需的功能,无论它是否为IE。

你可以(或者有人会说,应该)更进一步,只是隐藏应用程序中依赖于这些功能的部分,或者提供合适的后备,而不是完全阻止这些用户。

答案 1 :(得分:1)

查看GCF是否正常运行的方法是查看用户代理。如果您在其中看到“chromeframe”令牌,则会安装并启用它。现在,如果某些软件禁用了chrome frame BHO,那么以下脚本应该告诉你它是否已安装:

function IsGCFInstalled() {

      try {

        var i = new ActiveXObject('ChromeTab.ChromeFrame');
        if (i) {
          return true;
        }
      } catch(e) {
        log('ChromeFrame not available, error:', e.message);
        // squelch
      }

      return false;

}

答案 2 :(得分:0)

我必须安排自己的测试,但是目前;看来我在问题下面的评论中对Waleed Khan的回答confirmation。用户代理将返回包含术语“chromeframe”的字符串。这似乎是我所需要的。我只需要检查浏览器是否为MSIE< 10,我已经检查过了。应该快(我猜)并且似乎涵盖了所有必要的基础。