使用javascript在Chrome中检测NPAPI支持

Sao*_*Ali 27 google-chrome npapi

由于谷歌Chrome在2015年9月之后放弃了对NPAPI的支持.有没有办法使用JavaScript检测Chrome中的NPAPI支持,以便加载替代内容或向用户显示警告消息以使用旧版本的Chrome.

mcm*_*hav 8

有一个问题由chrome 42禁用NPAPI创建.所做的是这样的:(类似于)

function isJavaAvailable() {
  var javaRegex = /(Java)(\(TM\)| Deployment)/,
      plugins = navigator.plugins;
  if (navigator && plugins) {
    for (plugin in plugins){
      if(plugins.hasOwnProperty(plugin) &&
         javaRegex.exec(plugins[plugin].name)) {
        return true;
      }
    }
  }
  return false;
}

var chromeVersion = window.navigator.userAgent.match(/Chrome\/(\d+)\./);
if (chromeVersion && chromeVersion[1]) {
  if (parseInt(chromeVersion[1], 10) >= 42 && !isJavaAvailable()) {
    // do chrome-no-java-related task
    console.log('Java not available');
  }
}
Run Code Online (Sandbox Code Playgroud)

这不是直接的"NPAPI检测器",但可以通过更改正则表达式来重写以测试受NPAPI禁用影响的插件.正则表达式用于某种强大.一看进入navigator.plugins['some-number'].names 找一下检查.


smo*_*gan 3

由于自动更新,Chrome用户通常运行的是最新版本;一旦推出,您可能应该假设 Chrome 用户没有 NPAPI 支持,并为他们提供替代内容。