给定一个内容像这样流动的文本区域
–––––––––––––––––––––––––– | 这是一些文本,其中 | | 像这样包裹。| ––––––––––––––––––––––––––
如何判断文本光标是否在文本区域的第一行?
显然,如果想要查看光标是否出现在第一个换行符之前,检查换行符 ( \n
) 是有效的,但测试“软”换行符似乎更具挑战性。
这是一个用于试验的示例 jsFiddle。
我还没有想出一个策略,但我怀疑它可能涉及将文本复制到光标位置到克隆的文本区域(或 div)中,并根据需要设置宽度,这样它就不会换行. 如果克隆区域的宽度小于原始区域的宽度,则光标似乎必须位于第一行。可能有更简单的选择,更优雅的选择,或者(最重要的是)现有且经过良好测试的解决方案。
目标浏览器是 Webkit (Chrome/Safari) 和 Firefox。即,IE 兼容性目前不是问题(如果这有什么不同的话)。
谢谢阅读。
编辑:寻找文本插入符号的行号,而不是鼠标光标。
falsarella 给出了一个很好的答案,突出了这个问题的歧义。我正在寻找的是文本光标(“插入符号”可能是一个更好的词)是否在第一行。我已经更新了问题和jsFiddle来反映。