跨浏览器"跳转到"/"滚动"textarea

Edw*_*ang 9 html javascript css

我有一个带有许多输入行的textarea,并且会触发一个JavaScript事件,这需要我将textarea滚动到第345行.

scrollTop除了我可以告诉它的像素级别,我想要的是我想要的东西,我想要一个在线级操作的东西.令事情复杂化的是,再次说明,不可能使textareas不是换行.

Phi*_*Lho 10

您可以使用wrap属性停止换行.它不是HTML 4的一部分,但大多数浏览器都支持它.
您可以通过将区域的高度除以其行数来计算线条的高度.

<script type="text/javascript" language="JavaScript">
function Jump(line)
{
  var ta = document.getElementById("TextArea");
  var lineHeight = ta.clientHeight / ta.rows;
  var jump = (line - 1) * lineHeight;
  ta.scrollTop = jump;
}
</script>

<textarea name="TextArea" id="TextArea" 
  rows="40" cols="80" title="Paste text here"
  wrap="off"></textarea>
<input type="button" onclick="Jump(98)" title="Go!" value="Jump"/>
Run Code Online (Sandbox Code Playgroud)

在FF3和IE6中测试OK.