How to insert a new <div> by clicking on the cursor position of an existing <div>

this.$el.find('#divname').append(newDivHtml) will be added to newDivHTML to an existing div . However, I considered this scenario:

  • In existing div1 user edits free text and presses the button
  • When a button is pressed, a pop-up window appears with a list of parameters.
  • Selecting one option inserts newDivHTML at the cursor position of the div1 .

I tried : http://jsfiddle.net/jwvha/1/

  function pasteHtmlAtCaret(html) { var sel, range; if (window.getSelection) { // IE9 and non-IE sel = window.getSelection(); if (sel.getRangeAt && sel.rangeCount) { range = sel.getRangeAt(0); range.deleteContents(); // Range.createContextualFragment() would be useful here but is // non-standard and not supported in all browsers (IE9, for one) var el = document.createElement("div"); el.innerHTML = html; var frag = document.createDocumentFragment(), node, lastNode; while ( (node = el.firstChild) ) { lastNode = frag.appendChild(node); } range.insertNode(frag); // Preserve the selection if (lastNode) { range = range.cloneRange(); range.setStartAfter(lastNode); range.collapse(true); sel.removeAllRanges(); sel.addRange(range); } } } else if (document.selection && document.selection.type != "Control") { // IE < 9 document.selection.createRange().pasteHTML(html); } } 2. doesn't seems to work for that.$e1.find('#sectionContentSimple').insertAdjacentHTML(100, newhtml); 
+4
source share
1 answer

Just think, without delving too deeply into the code, did you try to save the element with a click on the variable, so that you can later access it, and not rely on maintaining its focus?

0
source

Source: https://habr.com/ru/post/1489406/


All Articles