当我说一行时,是指在文本区域中显示的换行。长行将换成多行。如果一行(以换行符结尾)换成三行,则计数必须为三。
问题在于换行符不仅发生在空格处,而且还发生在其他字符序列处。例如,在Firefox中,如果同一行中的空间不足,aaaaaa*<bbbbbb
将在*
之后中断。
这意味着我们不能简单地使用适合文本区域宽度和空格的字符数来计算显示的行数。显然,计算换行符没有用,因为它忽略换行。有一种方法可以通过使用textarea属性wrap="hard"
强制在换行符处插入换行符。据我了解,这仅在表单提交到服务器时发生。这不是一个合适的解决方案,因为我们希望使用JavaScript进行计数。
问题的另一个变体是:“是否可以将光标移动到下一个显示的行?”我尝试了以下操作,但这根本不移动光标,它仅“模仿”了向下箭头键事件:
var e = $.Event( "keydown", { which: 40 } );
...
$(this).trigger(e);