Como registrar o evento onkeydown para a tela HTML5

Eu gostaria de escrever uma demonstração de jogo de cobra com HTML5<canvas> elemento. Eu tentei registrar o evento Keyboard (onkeydown), mas não está funcionando.

Código:

   canvas.onkeydown = divertDirection; //don't work
   //canvas.addEventListener("keydown", divertDirection, false);  //don't work

   //根据键盘来调振蛇移动的方向
   function divertDirection(ev) {
        console.log(ev);
    }

    //register this event for widnow
   window.addEventListener("keydown", divertDirection, false); //ok

questionAnswers(2)

yourAnswerToTheQuestion