【问题标题】:Firefox XUL textbox: How to scroll to the bottom?Firefox XUL 文本框:如何滚动到底部?
【发布时间】:2010-12-31 22:27:25
【问题描述】:
我正在开发一个 Firefox 扩展,并且创建了一个多行文本框。当用户按下按钮时,我使用 (Javascript) TextBoxElement.value += "More Text";
将文本添加到文本框
这段代码的问题在于,每当添加更多文本时,文本框都会一直滚动到顶部。经过大量测试,我还没有弄清楚如何让它再次滚动到底部。由于某种原因,scrollTop 属性始终为 0,并且设置它不会影响滚动条。
有什么方法可以让滚动条回到文本框的底部?
我的扩展程序的目的是嵌入一个小型聊天框。我正在使用文本框来存储聊天记录。也许使用文本框不是最有效的方式,所以任何其他建议也很好。
【问题讨论】:
标签:
firefox
textbox
scroll
xul
【解决方案1】:
另一种解决方案是将插入符号移到文本框内容的末尾。 Caret 由selectionStart 和selectionEnd 属性控制(可以设置或获取)。
这里是示例代码:
var TextBoxElement = document.getElementById("myTextboxId");
var pos = TextBoxElement.value.length;
TextBoxElement.selectionStart = pos;
TextBoxElement.selectionEnd = pos;
【解决方案2】:
Chatzilla 上有人帮我解决了这个问题。谢谢!
无论如何,这里是解决方案:
var TextBoxElement = <TextBoxElement>;
var ti = document.getAnonymousNodes(TextBoxElement)[0].childNodes[0];
ti.scrollTop=ti.scrollHeight;