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

时间:2012-02-11 23:16:29

标签: javascript google-chrome google-nativeclient

我正在尝试运行一个非常基本的Chrome Native Client应用程序。我想做的是响应击键,例如每当用户按下键时显示“你按下X”。我一整天都在这里,但每次按下一个键,我都会得到“未捕获的TypeError:对象#没有方法'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非常弱。我想我必须遗漏一些基本而明显的东西。

1 个答案:

答案 0 :(得分:0)

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