栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

JavaScript如何从头开始以字符为单位在文本区域中插入符号的列(不是像素)位置?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JavaScript如何从头开始以字符为单位在文本区域中插入符号的列(不是像素)位置?

使用Firefox,Safari(和其他基于Gecko的浏览器),您可以轻松地使用textarea.selectionStart,但对于IE则无法使用,因此您必须执行以下操作:

function getCaret(node) {  if (node.selectionStart) {    return node.selectionStart;  } else if (!document.selection) {    return 0;  }  var c = "01",      sel = document.selection.createRange(),      dul = sel.duplicate(),      len = 0;  dul.moveToElementText(node);  sel.text = c;  len = dul.text.indexOf(c);  sel.moveStart('character',-1);  sel.text = "";  return len;}

我还建议您检查jQueryFieldSelection插件,它可以使您做到这一点以及更多…

编辑: 我实际上重新实现了上面的代码:

function getCaret(el) {   if (el.selectionStart) {     return el.selectionStart;   } else if (document.selection) {     el.focus();    var r = document.selection.createRange();     if (r == null) {       return 0;     }    var re = el.createTextRange(),         rc = re.duplicate();     re.moveToBookmark(r.getBookmark());     rc.setEndPoint('EndToStart', re);    return rc.text.length;   }    return 0; }


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/415889.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号