代码之家  ›  专栏  ›  技术社区  ›  alamar

显示文本区域的当前行号和列号

  •  5
  • alamar  · 技术社区  · 15 年前

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

    问题是:如何计算光标在textarea中的位置?

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

    2 回复  |  直到 13 年前
        1
  •  9
  •   Aung Myat Hein    9 年前

    <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
  •  8
  •   Rob W jminkler    13 年前

    您可能需要查看以下两个链接:

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

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

    …一旦您有了一个选择(文本中的光标索引),您就可以通过换行来分割文本,从而获得行号。可以通过从行的开头确定索引来获取列