GuardCat, вы правильно сделали range-объект, но неправильно ставите курсор) Точнее, совсем его не ставите. А ещё у вас ошибка с передачей event - вы его не передаёте) Вот это может вам помочь:
<!DOCTYPE HTML>
<html>
<body>
<div contenteditable onkeyup = "test.call(this, event)">0123456789</div>
<script>
function test(e) {
var range = document.createRange()
if (e.keyCode == 37) {
range.setStart(this.childNodes[0]/* Это же textNode? */, 2);
range.collapse(true);// совмещаем конец и начало в стартовой позиции
var sel= window.getSelection();
sel.removeAllRanges();
sel.addRange(range);
};
};
</script>
</body>
</html>
Но данный код - не для IE. Читайте
статью.