我有一个HTML textarea作为Chrome内部运行的小文本编辑器的基础,其中包括搜索功能(因为我需要超出浏览器提供的搜索功能)。对于较长的文本,这意味着我需要在选择找到的文本后滚动到正确的位置。这通过计算字体的行高度乘以找到的文本的行号(后者通过计算换行符得到)然后设置textareaElement.scrollTop ...但仅当textarea设置为wrap =“off”时才能正常工作。当它包装时,正如我有时需要的那样,我不能简单地通过计算换行数来计算行数,而我的滚动位置算法会稍微偏离。
如何才能找到找到的所选文字的正确位置?
答案 0 :(得分:2)
我已经针对log4javascript中日志记录控制台的搜索功能解决了这个问题。我的代码将搜索结果包含在标签中,当您浏览搜索结果时,其样式属性会发生变化。最初我在当前搜索结果范围内调用scrollIntoView()
,但我认为我在某些浏览器中遇到问题(例如,log4javascript支持IE 5),最后根据offsetLeft
和{编写自己的滚动功能{1}}范围的属性以及容器的offsetTop
和scrollLeft
属性。我怀疑scrollTop
在Chrome中可以正常工作,所以你应该可以使用它。