js -- 设置输入框光标位置(在模拟微信表情输入的时候遇到的)

来源:互联网 发布:xbox360手柄 mac 编辑:程序博客网 时间:2024/05/17 01:16

项目中需要自己制作一个类似微信表情包输入的效果,在输入表情的时候光标总是显示在刚刚输入的表情的前面,再输入文字的时候会在这个表情前面显示,而输入表情则正常显示。此时就需要利用js设置光标的位置

// true 为开始位置,false 为末尾function placeCaret(el, atStart) {    el.focus();    if (typeof window.getSelection != 'undefined' && typeof document.createRange != 'undefined') {        var range = document.createRange();        range.selectNodeContents(el);        range.collapse(atStart);        var sel = window.getSelection();        sel.removeAllRanges();        sel.addRange(range);    } else if (typeof document.body.createTextRange != 'undefined') {        var textRange = document.body.createTextRange();        textRange.moveToElementText(el);        textRange.collapse(atStart);        textRange.select();    }}// 注意使用的位置要在添加表情的打码的后面placeCaret(document.querySelector('article'), false);

阅读全文
0 0