Подсчет отображаемых строк в текстовой области с использованием JavaScript или jQuery - PullRequest
1 голос
/ 01 июля 2019

Когда я говорю «линия», я имею в виду обернутую линию, отображаемую в текстовой области. Длинная строка будет перенесена на несколько строк. Если строка (заканчивающаяся символом новой строки) переносится на три строки, количество должно быть три.

Проблема в том, что разрывы строк происходят не только в пробелах, но и в других последовательностях символов. Например, в Firefox aaaaaa*<bbbbbb сломается после *, если в той же строке недостаточно места.

Это означает, что мы не можем просто использовать количество символов, которые могут поместиться в ширину и пробелы текстовой области, чтобы вычислить количество отображаемых строк. Очевидно, что подсчет новых строк бесполезен, так как игнорирует перенос. Есть способ принудительно вставить новую строку в разрывы строк, используя атрибут textarea wrap="hard". Как я понимаю, это происходит только тогда, когда форма отправляется на сервер. Это не подходящее решение, так как мы хотим сделать подсчет в JavaScript.

Еще один вариант проблемного вопроса: «Есть ли способ переместить курсор на следующую отображаемую строку?» Я попробовал следующее, но это вовсе не перемещает курсор, оно только «имитирует» событие стрелки вниз:

var e = $.Event( "keydown", { which: 40 } );
...
$(this).trigger(e);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...