Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
359 views
in Technique[技术] by (71.8m points)

javascript - I'm trying to replace an span tag in a contenteditable div

In my replace function, i want to add a span tag in html but actually is insert like string... The definitive intention is a change color or style to this element changed.

"use strict";
document.designMode = "on";

let text = document.getElementById('text');

let observer = new MutationObserver(mutations =>
mutations.forEach(mutation => {
    console.log(text.textContent);
    observer.disconnect();// turn observer off;
    text.textContent = text.textContent.replace('e', '<span>e</span>');
   
    const range = document.createRange();
    const textNode = text.firstChild;
    range.setStart(textNode, text.textContent.length);
    range.setEnd(textNode, text.textContent.length);
    const sel = window.getSelection();
    sel.removeAllRanges();
    sel.addRange(range);
    observe(); // turn back on 
})
);
  
  const observe = ()=> {
  
    observer.observe(text, {
      childList: true,
      characterData: true,
      subtree: true,
     
    });
  };
  observe();

observer.observe(text, {
  childList: true,
  characterData: true,
  subtree: true,
});
<p contenteditable="true" id="text">I'm a text will be change</p>
question from:https://stackoverflow.com/questions/65935229/im-trying-to-replace-an-span-tag-in-a-contenteditable-div

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
Waitting for answers

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...