我有一個HTML文本區域作爲Chrome內部運行的小型文本編輯器的基礎,其中包含搜索功能(因爲我需要超出瀏覽器提供的搜索功能)。對於更長的文本,這意味着我需要JavaScript在選擇找到的文本後滾動到正確的位置。這可以通過計算字體的行高度乘以找到的文本的行號(後者通過計算換行符來獲得),然後設置textareaElement.scrollTop ...但只有當textarea設置爲wrap =「off」時正常工作。當它包裝時,我有時需要它,我不能簡單地通過計算換行符來計算行數,並且我的滾動位置算法會稍微偏離。JavaScript:在textarea中查找特定字符串的垂直像素位置
如何才能找到找到的選定文本的正確位置?
謝謝你的回答; scrollIntoView()看起來很有趣。我不得不承認,雖然我沒有使用任何div或span元素,所以我認爲它不起作用 - 我想要滾動到視圖中的內容僅僅是大型textarea元素中當前選定的文本部分... – 2009-10-15 09:02:18
好。我正在努力想辦法達到你想要的。如果您的textarea使用固定寬度的字體和固定數量的列,則可以使用它來計算包裝線的數量。除此之外,我看不到一種做法。 – 2009-10-15 11:02:15
@Phillip Lenssen:你可以用臨時跨度將當前選擇區域捲動到視圖中,然後使用DOM操作將其刪除,也許? – sirlark 2010-05-11 11:15:52