Get and set cursor position with contenteditable div

前端 未结 4 1881
星月不相逢
星月不相逢 2020-12-25 13:58

I have a contenteditable div which I would like to be able to have users insert things such as links, images or YouTube videos. At the moment this is what I have:

4条回答
  •  清酒与你
    2020-12-25 14:02

    There's a ton of related info onsite. This one works for me and my clients.

    DEMO

    https://stackoverflow.com/a/6249440/2813224

    function setCaret(line, col) {
      var ele = document.getElementById("editable");
      var rng = document.createRange();
      var sel = window.getSelection();
      rng.setStart(ele.childNodes[line], col);
      rng.collapse(true);
      sel.removeAllRanges();
      sel.addRange(range);
      ele.focus();
    }
    
    //https://stackoverflow.com/a/6249440/2813224
    
    var line = document.getElementById('ln').value;
    var col = document.getElementById('cl').value;
    var btn = document.getElementById('btn');
    btn.addEventListener('click', function(event) {
      var lineSet = parseInt(line, 10);
      var colSet = parseInt(col, 10);
      setCaret(lineSet, colSet);
    }, true);

    text text text text text text
    text text text text text text
    text text text text text text

提交回复
热议问题