标签:javascript cursor-position summernote
当Summernote文本编辑器初始化并将focus属性设置为true时,编辑器将获得焦点,但将光标放在编辑器的开头.
我的偏好是将光标放在用户最初点击的位置.至少我只需要将光标放在编辑器的末尾.
Summernote API似乎没有直接支持这一点,我尝试了各种hacky外观的解决方案;如清空文本区域,创建编辑器,然后插入HTML节点.光标仍然在行的开头.
忘了包括我的小提琴:http://jsfiddle.net/madChemist/gvy3po4L/1/
解决方法:
这是我修改为我工作的解决方案:
$.fn.extend({
placeCursorAtEnd: function() {
// Places the cursor at the end of a contenteditable container (should also work for textarea / input)
if (this.length === 0) {
throw new Error("Cannot manipulate an element if there is no element!");
}
var el = this[0];
var range = document.createRange();
var sel = window.getSelection();
var childLength = el.childNodes.length;
if (childLength > 0) {
var lastNode = el.childNodes[childLength - 1];
var lastNodeChildren = lastNode.childNodes.length;
range.setStart(lastNode, lastNodeChildren);
range.collapse(true);
sel.removeAllRanges();
sel.addRange(range);
}
return this;
}
});
最初来自这篇文章:https://stackoverflow.com/a/6249440/2921200然后我修改为使用jQuery&特别针对Summernote.
标签:javascript,cursor-position,summernote 来源: https://codeday.me/bug/20190608/1201538.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。