【问题标题】:Display current line and column number for a textarea显示文本区域的当前行号和列号
【发布时间】:2009-05-12 08:54:03
【问题描述】:

我正在我的网络应用程序中创建一个文件编辑界面,我有一个包含文件内容的文本区域。

当 textarea 被聚焦时,我想输出光标的位置,即行号和列:这很有用,因为错误消息通常会产生一个行号,例如。

问题是:如何确定光标在 textarea 中的位置? 我正在使用原型库。也许已经有解决方案了?

我对那些高级小部件提供的用于 textarea 的花哨工具栏并不感兴趣。

【问题讨论】:

    标签: javascript prototypejs textarea


    【解决方案1】:

    当我想要textarea的当前行号和textarea的当前列时,我是这样解决的:

    <textarea  onkeyup="getLineNumberAndColumnIndex(this);" onmouseup="this.onkeyup();" >
    </textarea>
    
    function getLineNumberAndColumnIndex(textarea){
         var textLines = textarea.value.substr(0, textarea.selectionStart).split("\n");
         var currentLineNumber = textLines.length;
         var currentColumnIndex = textLines[textLines.length-1].length;
         console.log("Current Line Number "+ currentLineNumber+" Current Column Index "+currentColumnIndex );
      }
    

    【讨论】:

      【解决方案2】:

      您可能想查看以下 2 个链接:

      http://www.dedestruct.com/2008/03/22/howto-cross-browser-cursor-position-in-textareas/[原源已不存在,修改后的链接指向最新版本的Web Archive]

      https://developer.mozilla.org/En/DOM:Selection

      ..一旦你有一个选择(文本中的光标索引),你可以用换行符分割你的文本,从而得到行号。您可以通过从行首确定索引来获取列

      【讨论】:

      猜你喜欢
      • 2012-09-17
      • 1970-01-01
      • 1970-01-01
      • 2019-02-21
      • 2020-10-30
      • 1970-01-01
      • 1970-01-01
      • 2011-05-26
      相关资源
      最近更新 更多