将文本区域(textarea)定位到行。

作者:vkvi 来源:ITPOW(原创) 日期:2010-5-28

利用 JavaScript 可将文本区域(textarea)中的内容定位到指定行,在 IE、Firefox、Chrome 中均有效。

<textarea rows="5" cols="30" wrap="off" id="t1">1
2
3
4
5
6
7
8
9
10</textarea>
<input type="button" id="go" onclick="javascript:go();" value="go" />
 
<script type="text/javascript">
<!--
function go()
{
    // t1 为文本区域(textarea)
    var t1 = document.getElementById("t1");
   
    // 获取总行数
    var linesCount = 0;
    if (t1.value.indexOf("\r\n") >= 0)
    {
        // IE 中使用 \r\n
        linesCount = t1.value.split("\r\n").length;
    }
    else
    {
        // Firefox、Chrome 中使用 \n,或当不存在换行时进入本代码
        linesCount = t1.value.split("\n").length;
    }
   
    var index = 3; // 要滚动到的行索引,第一行为 0
    t1.scrollTop = (index * t1.scrollHeight) / linesCount;
}
//-->
</script>

要说明的是应该为文本区域(textarea)指定 wrap="off",这样当文本过宽,超过文本区域宽度后,不会换行,这样才能准确定位到行。

相关技术来源于文本比较工具

相关文章