使用 document.execCommand('insertHTML', 在 contentEditable 中插入 span

Fif*_*ifi 5 html javascript contenteditable

我正在开发一个丰富的内容编辑器。配置设置为添加<p>标签作为段落分隔符:

document.execCommand('defaultParagraphSeparator', false, "p");
Run Code Online (Sandbox Code Playgroud)

我必须插入特殊<span contenteditable='false'>部分:

document.execCommand('insertHTML', false, "<span contenteditable='false'>...</span>");
Run Code Online (Sandbox Code Playgroud)

插入未按预期完成。

我预计 :

<p>something <span>...</span></p>
Run Code Online (Sandbox Code Playgroud)

我有 :

<p>something </p>
<span>...</span>
Run Code Online (Sandbox Code Playgroud)

我不明白为什么span标签没有插入p标签中。任何想法?

小智 4

execCommand不同浏览器之间存在不一致和错误的历史。如今,execCommand已经过时了:

此功能已过时。尽管它在某些浏览器中仍然可以工作,但不鼓励使用它,因为它可能随时被删除。尽量避免使用它。

来源:https ://developer.mozilla.org/en-US/docs/Web/API/Document/execCommand

我建议您阅读此页面的最佳替代方案:https://medium.com/@jitubutwal144/ Three- Different-ways-to-build-inline-content-editor-using-javascrpit-d58c2edac9cb