利用 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",这样当文本过宽,超过文本区域宽度后,不会换行,这样才能准确定位到行。
相关技术来源于文本比较工具。