Это кажется плохой идеей, так как помимо текстового ввода есть очень много, что текстовая область дает вам бесплатно (каретка, выделение, вырезание, вставка, перетаскивание, обработка клавиш со стрелками и т.д.), но две вещи, которые вам нужно сделать:
- Задайте свой атрибут
<canvas>
tabindex
, чтобы он мог получать фокус и, следовательно, вызывать ключевые события;
- Добавьте обработчик
keypress
(не keydown
) к элементу <canvas>
для захвата ввода текста.
Код:
<canvas id="textarea" tabindex="1" width="300" height="200"></canvas>
<script type="text/javascript">
var el = document.getElementById("textarea");
el.onkeypress = function(evt) {
var charCode = evt.which;
var charStr = String.fromCharCode(charCode);
alert(charStr);
};
</script>