Я пытаюсь запустить очень простое приложение Chrome Native Client. То, что я хотел бы сделать, это реагировать на нажатия клавиш, например, отображать «Вы нажали X» всякий раз, когда пользователь нажимает клавишу. Я был на этом весь день, но каждый раз, когда я нажимаю клавишу, я получаю " Uncaught TypeError: У Object # нет метода '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 различных способов: добавив его в тег body с помощью addEventListener, добавив его непосредственно в тег body с помощью onKeyDown ... ничего не работает.
У меня есть опыт работы с C / C ++ и PHP, но мой Javascript действительно слабый. Думаю, мне не хватает чего-то фундаментального и очевидного.