我正在使用 jQuery 将文本附加到 textarea
var box = $('<textarea></textarea>')
.attr({id: 'log_viewer',
readonly: '',
cols: 100,
rows: 40})
.appendTo($(outputEntity));
当从 WebSocket 接收数据时,它会附加到 textarea 的内容中:
ws.onmessage = function(msg) {
var data = decodeURIComponent(msg.data);
data = data.replace('<', '<');
data = data.replace('>', '>');
box.append(data);
}
我需要的是让这个框自动滚动到底部,以便视口始终以输出的最后一页为中心。按照有关此主题的其他一些 Stack Overflow 建议,我尝试了:
$('#log_viewer').scrollTop = $('#log_viewer')[0].scrollHeight - $('#log_viewer').height();
但是,这不起作用——至少在 Linux 上的 Chrome 或 Firefox 中不起作用,这是我可以访问的所有内容。该框不滚动。
如何让这个框从 JS 自动滚动到最底部的页面?是否使用 append() 添加输出以某种方式干扰底层维度检测机制?append() 甚至是去那里的正确方法吗?
或者也许我根本不应该使用文本区域,而应该使用带有滚动条的 DIV?诚然,我在 HTML + CSS 方面落后于时代,并且不知道如何最好地实现这一点,并且仍然获得我所追求的等宽格式的包装输出。
非常感谢您的任何建议!