javascript - Chrome Native Client,使用 onKeyDown 事件时出错

标签 javascript google-chrome google-nativeclient

我正在尝试运行一个非常基本的 Chrome Native Client 应用程序。我想做的是响应击键,例如每当用户按下某个键时显示“您按下了 X”。我已经这样做了一整天,但每次按下一个键,我都会收到“Uncaught TypeError: Object # has no method 'postMessage'”。

错误全部在Javascript中; Native Client C++ 模块工作正常。

文档头部的 JavaScript:

myModule = null;  // Global application object.

function moduleDidLoad() {
    myModule = document.getElementById('mymodule');

    alert("module loaded!") // this works

    myModule.postMessage('hello'); // this works, and posts 'hello' to the module

   // ERROR
   document.body.onkeydown = function() {myModule.postMessage('hi');}
}

页面中:

<div id="listener">
   <script type="text/javascript">

     var listener = document.getElementById('listener');
      listener.addEventListener('load', moduleDidLoad, true);

   </script>

  <embed name="nacl_module"
   id="mymodule"
   width=0 height=0     
   src="mymodule.nmf"
   type="application/x-nacl" />
</div>

我尝试了大约 15 种不同的方法:通过使用 addEventListener 将其添加到 body 标记,通过使用 onKeyDown 将其直接添加到 body 标记...没有任何效果。

我有 C/C++ 和 PHP 经验,但我的 Javascript 确实很弱。我想我一定错过了一些基本且明显的东西。

最佳答案

已解决。在页面的其他位置,包含游戏模块的 DIV 的内容发生了更改,从而从内存中删除了该模块。

关于javascript - Chrome Native Client,使用 onKeyDown 事件时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9244911/

相关文章:

javascript - Nodejs Mocha : Unable to test a POST and GET by ID

angularjs - 使用 Videogular 时如何访问视频的方法?

c++ - 如何开始编辑 Chromium 的源代码?

javascript - 如何使用 NestJs 从外部 API 返回简单图像?

javascript - 当asp :linkbutton is clicked时如何用data-id填充隐藏字段

javascript - Jquery动画效果在第一次点击时不起作用

javascript - Chrome/Safari 图片加载器,首次打开

rust - PNaCl 对 Rust 的支持

c++ - Google 的 Native Client 和编译 SDL2

qt - Windows 上的 Google NaCl 和 Qt