Почему существует разница в длине текста при возврате или удалении (в TinyMCE)

В моем методе TinyMCE.init у меня есть функция настройки, подобная этой:

setup: function(ed){
    ed.onKeyUp.add(function(ed, e){
        var count = ed.getBody().innerText.length;
        var key = e.keyCode || e.charCode;
        console.log(count);
        console.log(ed.getBody().innerText);
    });
}

Если моя текстовая область пуста, когда я нажимаю Backspace (клавиша = 8), счетчик равен 0. Когда я нажимаю Удалить (клавиша = 46), счетчик равен 1.

В обоих случаях console.log(ed.getBody().innerText); возвращает пустую строку.

Я хочу использовать это для подсчета (и ограничения) размера моего TinyMCE. Кто-нибудь может просветить меня об этой странной разнице?


person VeZoul    schedule 24.08.2016    source источник


Ответы (1)


Delete — это код символа 127 в таблице ASCII. Символ удаления записывается в текстовый ввод и, следовательно, учитывает его длину, но не отображается, поскольку управляющие символы не отображаются.

Это действительно странное поведение, потому что на самом деле символ удаления не должен быть записан в текстовое поле, но похоже, что он это делает.

person Tom Doodler    schedule 24.08.2016
comment
Это был не код 127, а код 10... В любом случае, вы указали решение! - person VeZoul; 24.08.2016
comment
Код 10 — это новая строка, которая должна еще меньше появляться, когда вы набираете «удалить»: D - person Tom Doodler; 24.08.2016