首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检测Chrome NaCl是否可用

检测Chrome NaCl是否可用
EN

Stack Overflow用户
提问于 2013-10-25 18:26:24
回答 2查看 840关注 0票数 4

有没有办法检测NaCl在当前浏览器上是否可用?

在一些非Chrome浏览器上,检查chrome.app.isInstalled似乎变成了误报

EN

回答 2

Stack Overflow用户

发布于 2013-10-26 06:43:34

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

代码语言:javascript
复制
navigator.mimeTypes['application/x-nacl'] !== undefined.

同样,对于PNaCl,您可以检查'application/x-pnacl'

票数 5
EN

Stack Overflow用户

发布于 2014-06-14 05:21:32

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

代码语言:javascript
复制
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;
}

然而,这并不能说明全部情况。31+版本有PNaCl,默认情况下是启用的。默认情况下,只有Chrome商店中的应用程序才会启用NaCl,所以你仍然需要测试是否启用了NaCl。为此,一种方法是设置看门狗计时器,然后尝试加载NaCl模块并捕获加载事件。在load事件中,清除看门狗计时器。例如:

代码语言:javascript
复制
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"/>';

这要求您的HTML中的某个位置具有类似以下内容的内容:

代码语言:javascript
复制
<div id="module"></div>

如果您的模块需要一段时间才能下载,那么您可能还希望捕获loadstart和progress事件,并延长监视程序的时间。

代码语言:javascript
复制
function watchdog_extend() {
  watchdog_clear();
  watchdog_set(watchdog_time);
}

module.addEventListener('loadstart', watchdog_extend, true);
module.addEventListener('progress', watchdog_extend, true);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19587306

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档