我打算使用Document.execCommand()方法和contenteditable属性来构建我的自定义 WYSIWYG 编辑器。但是当我查看 的文档时Document.execCommand(),我发现它现在已经过时了。它的现代(或现存)替代品是什么?
我正在使用 vanilla JavaScript 构建一个业余的富文本编辑器,并且 document.execCommand() 对于启用文本编辑器的核心功能至关重要。
例如粗体、斜体和无序列表命令:
Array.from(toolbarBtn).forEach(btn => {
btn.addEventListener('click', (e) => {
e.preventDefault();
if (e.target.id === "toolbar__btn--bold") {
format('bold');
}
if (e.target.id === "toolbar__btn--italic") {
format('italic');
}
if (e.target.id === "toolbar__btn--unorderedlist") {
format('insertunorderedlist');
}
});
});
Run Code Online (Sandbox Code Playgroud)
但是,在 MDN Web Docs 上查找此命令时,我发现此命令已过时:
过时 此功能已过时。尽管它可能在某些浏览器中仍然有效,但不鼓励使用它,因为它可以随时被删除。尽量避免使用它。
所以,我想知道在 vanilla JavaScript 中是否有任何替代方法可以创建像 execCommand() 那样的所有富文本编辑器功能?
谷歌搜索没有给我任何结果,所以同时,我想知道,该方法被宣布已过时,但没有建议的替代方法怎么可能。
ExecCommand 提供了一种在 iFrame 中加粗文本、使其成为斜体、下划线等的方法。
但是它缺少创建<cite>或<strong>或的选项<em>(formatBlock但仅用于块元素而不是内联元素)。
我想使用 ExecCommand 函数进行创建<cite>- 有什么方法可以实现吗?很显然我要保持完美无瑕的解析像的情况下bold,而不是像surroundContents当您使用它两次相同的选择,这将失败。
我正在寻找 ExecCommand 粗体命令的定义或一种使用现有命令完美添加<cite>. 有什么建议?我无法从浏览器的功能中提取它。当我尝试这样做时,它会显示“本机代码”。