我正在开发Firefox扩展程序,我创建了一个多行文本框。当用户按下按钮时,我使用(Javascript)TextBoxElement.value + =“More Text”将文本添加到文本框中;
此代码的问题在于,无论何时添加更多文本,文本框都会一直滚动到顶部。经过多次测试,我还没弄明白如何让它再次滚动到底部。由于某种原因,scrollTop属性始终为0,并且设置它不会影响滚动条。
有什么方法可以将滚动条设置回文本框的底部吗?
我的扩展程序的目的是嵌入一个小聊天框。我正在使用文本框存储聊天记录。也许使用文本框不是最有效的方式,所以任何其他建议也会很棒。
答案 0 :(得分:1)
Chatzilla上的某个人帮我解决了这个问题。谢谢!
无论如何,这是解决方案:
var TextBoxElement = <TextBoxElement>;
var ti = document.getAnonymousNodes(TextBoxElement)[0].childNodes[0];
ti.scrollTop=ti.scrollHeight;
答案 1 :(得分:0)
另一种解决方案是将插入符号移到文本框内容的末尾。插入符号由selectionStart
和selectionEnd
属性控制(可以设置或获取)。
以下是示例代码:
var TextBoxElement = document.getElementById("myTextboxId");
var pos = TextBoxElement.value.length;
TextBoxElement.selectionStart = pos;
TextBoxElement.selectionEnd = pos;