非常に基本的な 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>
addEventListener を使用して body タグに追加する方法、onKeyDown を使用して body タグに直接追加する方法など、約 15 の方法を試しましたが、何も機能しません。
私は C/C++ と PHP の経験がありますが、Javascript は本当に苦手です。基本的で明白な何かが欠けているに違いないと思います。