JSFiddle - React, Tailwind, and code Playground

HTML

<div id='bE1' style='display: inline-block; height: 120px;'>
  <div id="link-insert1" class="white_content">Legg til en lenke ved ny sekvens.
    <br>
    <br>
    <div id="small">Tittel som vises</div>
    <input id="url_title1" name="url_title" type="text" class="input-field-save">
    <br>
    <div id="small">Nettadressen</div>
    <input id="url_content1" name="url-content" type="text" class="input-field-save">
    <br>
    <br>
    <button type="button" id="lcloseinsert1">Sett inn</button>
    eller
    <button type="button" id="lclosedecline1">Lukk</button>
  </div>
  <div id="link-fade1" class="black_overlay"></div>
  <td>
    <button type="button" id="lsaveinsert1">Btn</button>
  </td>

  <div id="div-new-wrap" style="vertical-align: top; display: inline-block;">
    <div id="div_new_1" tabindex="100" style="outline: none; display: inline-block; padding: 3px; border: 1px solid #aeaeae; font-size: 14px; word-wrap: break-word; width: 236px; min-height: 85px; height: auto;" contenteditable="true" data-text="Test"></div>
  </div>
</div>

CSS

#link-insert1 {
  display: none;
}

JavaScript

lsaveinsert1.addEventListener("click", lsaveRangePosition1);
lclosedecline1.addEventListener("click", lrestoreRangePosition1);
lcloseinsert1.addEventListener("click", lrestoreRangePositionInsert1);

// ******************
// LINK INSERT
// ******************
function openPopupLink1() {
  document.getElementById('link-insert1').style.display = 'block';
  document.getElementById('link-fade1').style.display = 'block';
}

function closePopupLink1() {
  document.getElementById('link-insert1').style.display = 'none';
  document.getElementById('link-fade1').style.display = 'none';
}

function lsaveRangePosition1() {
  var range = window.getSelection().getRangeAt(0);
  var sC = range.startContainer,
    eC = range.endContainer;

  A = [];
  while (sC !== bE1) {
    A.push(getNodeIndex1(sC));
    sC = sC.parentNode
  }
  B = [];
  while (eC !== bE1) {
    B.push(getNodeIndex1(eC));
    eC = eC.parentNode
  }

  window.rp = {
    "sC": A,
    "sO": range.startOffset,
    "eC": B,
    "eO": range.endOffset
  };

  openPopupLink1();
}

function lrestoreRangePosition1() {
  closePopupLink1();
  bE1.focus();
  var sel = window.getSelection(),
    range = sel.getRangeAt(0);
  var x, C, sC = bE1,
    eC = bE1;

  C = rp.sC;
  x = C.length;
  while (x--) sC = sC.childNodes[C[x]];
  C = rp.eC;
  x = C.length;
  while (x--) eC = eC.childNodes[C[x]];

  range.setStart(sC, rp.sO);
  range.setEnd(eC, rp.eO);
  sel.removeAllRanges();
  sel.addRange(range)
}

function lrestoreRangePositionInsert1() {
  var newText1 = document.getElementById('url_title1').value;
  var newText2 = document.getElementById('url_content1').value;

  var pasteText = "<a href='" + newText2 + "'>" + newText1 + "</a>";
  closePopupLink1();

  bE1.focus();
  var sel = window.getSelection(),
    range = sel.getRangeAt(0);
  var x, C, sC = bE1,
    eC = bE1;

  C = rp.sC;
  x = C.length;
  while (x--) sC = sC.childNodes[C[x]];
  C = rp.eC;
  x = C.length;
  while (x--) eC = eC.childNodes[C[x]];

  range.setStart(sC,...