javascript - div编辑器获取光标的位置
巴扎黑
巴扎黑 2017-04-10 16:13:47
[JavaScript讨论组]

如何获取光标的位置
只适配webkit

<p id="content" style="border: 1px solid #f1f1f1;" contenteditable="true"></p>
巴扎黑
巴扎黑

全部回复(3)
ringa_lee

如果是要获取的是光标偏移了多少个文字的话,可以通过 selectionStart 属性来获取,webkit 系的浏览器都支持这一属性。
摘一个 stackoverflow 上的栗子:

/*
** Returns the caret (cursor) position of the specified text field.
** Return value range is 0-oField.value.length.
*/
function doGetCaretPosition (oField) {

  // Initialize
  var iCaretPos = 0;

  // IE Support
  if (document.selection) {

    // Set focus on the element
    oField.focus();

    // To get cursor position, get empty selection range
    var oSel = document.selection.createRange();

    // Move selection start to 0 position
    oSel.moveStart('character', -oField.value.length);

    // The caret position is selection length
    iCaretPos = oSel.text.length;
  }

  // Firefox support
  else if (oField.selectionStart || oField.selectionStart == '0')
    iCaretPos = oField.selectionStart;

  // Return results
  return iCaretPos;
}
伊谢尔伦

http://ichord.github.io/Caret.js/

PHP中文网

我记得Selection对象还有Range对象应该能获取到,详细的你可以查一下MDN

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号