Dim@,
 ему нужно что-то вроде этого, но только для элемента с contenteditable
<!DOCTYPE html>
<html>
    <head></head>
    <body>
        <textarea id="area" style="width: 100%">________________________________________________________</textarea>
 
        <script type="text/javascript">
            document.getElementById( 'area' ).onkeypress = function( e ) {
                e = e || window.event;
                var target = e.target || e.srcElement,
                    text = target.value,
                    caretPos = 0;
                if ( e.which == null ) {
                    e.which = e.charCode != null ? e.charCode : e.keyCode;
                }
                if ( e.which == 9 || e.which == 8 || e.which == 0 ||
                    /[\x21\x22\x23\x24\x25\x26\x27\x28\x2E]/.test( String.fromCharCode( e.keyCode ) ) ) {
                    return;
                }
                if ( document.selection ) {
                    target.focus();
                    var sel = document.selection.createRange();
                    sel.moveStart( 'character', -target.value.length );
                    caretPos = sel.text.length;
                } else if ( target.selectionStart || target.selectionStart == '0' ) {
                    caretPos = target.selectionStart;
                }
                target.value = text.substr( 0, caretPos ) + text.substr( caretPos + 1 );
                if ( target.setSelectionRange ) {
                    target.focus();
                    target.setSelectionRange( caretPos, caretPos );
                } else if ( target.createTextRange ) {
                    var range = target.createTextRange();
                    range.collapse( true );
                    range.moveEnd( 'character', caretPos );
                    range.moveStart( 'character', caretPos );
                    range.select();
                }
            }
        </script>
    <body>
</html>
 с элементами возни просто больше, с возвращением фокуса на ту позицию которую изменяем.