Firefox XUL 文本框:如何滚动到底部?
Posted
技术标签:
【中文标题】Firefox XUL 文本框:如何滚动到底部?【英文标题】:Firefox XUL textbox: How to scroll to the bottom? 【发布时间】:2010-12-31 22:27:25 【问题描述】:我正在开发一个 Firefox 扩展,并且创建了一个多行文本框。当用户按下按钮时,我使用 (javascript) TextBoxElement.value += "More Text";
将文本添加到文本框这段代码的问题在于,每当添加更多文本时,文本框都会一直滚动到顶部。经过大量测试,我还没有弄清楚如何让它再次滚动到底部。由于某种原因,scrollTop 属性始终为 0,并且设置它不会影响滚动条。
有什么方法可以让滚动条回到文本框的底部?
我的扩展程序的目的是嵌入一个小型聊天框。我正在使用文本框来存储聊天记录。也许使用文本框不是最有效的方式,所以任何其他建议也很好。
【问题讨论】:
【参考方案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;
【讨论】:
以上是关于Firefox XUL 文本框:如何滚动到底部?的主要内容,如果未能解决你的问题,请参考以下文章