将光标位置设置为包含在div中的文本的末尾

时间:2014-05-27 07:38:15

标签: javascript html5

我想知道如何将光标位置移动到我的文本的末尾,包含“contenteditable”DIV ...

下面的代码选择了我在DIV元素中的所有文本...但我只是想在文本末尾添加光标而不选择所有文本......

我的.js代码:

  $mydiv.wrapInner('<div contenteditable="true" id="editableCase"></div>');
  var range = document.createRange();
  range.selectNodeContents(document.getElementById("editableCase"));
  var sel = window.getSelection();
  sel.removeAllRanges();
  sel.addRange(range);
  _case.$element.children().children().focus();

1 个答案:

答案 0 :(得分:1)

这是这个问题的常见答案:

function placeCaretAtEnd(el) {
        el.focus();
        if (typeof window.getSelection != "undefined"
                && typeof document.createRange != "undefined") {
            var range = document.createRange();
            range.selectNodeContents(el);
            range.collapse(false);
            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(false);
            textRange.select();
        }
    }

    placeCaretAtEnd( document.getElementById("content") );