0

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

我正在构建一个使用 HTML 5 功能的网站,Microsoft Internet Explorer < v10(至少)并不支持所有这些功能。我有一个 MSIE 9 或更早版本的检查(javascript),但如果安装了 GCF,仅此一项就会很糟糕。如果 GCF 已安装并启用,则应用程序应该继续其愉快的方式,而不用担心它在 MSIE 中运行的事实。

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

4

3 回答 3

2

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

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

于 2013-02-03T12:34:29.247 回答
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;

}
于 2013-06-14T07:32:54.127 回答
0

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

于 2013-02-03T18:30:46.650 回答