Javascript 检测是否有铬氯化钠

Javascript 检测是否有铬氯化钠,javascript,google-chrome,google-chrome-app,google-nativeclient,Javascript,Google Chrome,Google Chrome App,Google Nativeclient,有没有办法检测当前浏览器上是否有NaCl 在一些非chrome浏览器上检查chrome.app.isInstalled似乎会变成假阳性您可以检查浏览器是否处理mime类型。例如: navigator.mimeTypes['application/x-nacl'] !== undefined. 类似地,对于PNaCl,您可以检查'application/x-PNaCl'您可以检查Chrome和特定版本的Chrome,如下所示: var have_nacl = false; var have_pn

有没有办法检测当前浏览器上是否有NaCl


在一些非chrome浏览器上检查
chrome.app.isInstalled
似乎会变成假阳性

您可以检查浏览器是否处理mime类型。例如:

navigator.mimeTypes['application/x-nacl'] !== undefined.

类似地,对于PNaCl,您可以检查
'application/x-PNaCl'

您可以检查Chrome和特定版本的Chrome,如下所示:

var have_nacl = false;
var have_pnacl = false;

var index = navigator.userAgent.indexOf('Chrome');
if (index != -1) {
  var version = parseFloat(navigator.userAgent.substring(index + 7));

  if (31 <= version) have_pnacl = true;
  if (14 <= version) have_nacl = true;
}
var watchdog;
var watchdog_time;

function watchdog_timeout() {
  alert('NaCl module failed to load');
}

function watchdog_clear() {
  clearTimeout(watchdog);
}

function watchdog_set(time) {
  watchdog_time = time;
  watchdog = setTimeout(watchdog_timeout, time);
}

watchdog_set(5000); // Timeout in 5 sec

var module = document.getElementById('module'); // Use your module's ID
module.addEventListener('load', function () {
  watchdog_clear();
  alert('NaCl module loaded');
}, true);

// Inject the module, where module.nmf is your NMF file.
module.innerHTML = '<embed src="module.nmf" type="application/x-nacl"/>';
<div id="module"></div>
function watchdog_extend() {
  watchdog_clear();
  watchdog_set(watchdog_time);
}

module.addEventListener('loadstart', watchdog_extend, true);
module.addEventListener('progress', watchdog_extend, true);