自定义编辑器中如何关闭document.execCommand("superscript")恢复普通文本
解决contenteditable中上标无法取消的问题
当你用document.execCommand("superscript", false, undefined)开启上标后,重复执行该命令或removeFormat无效,大概率是浏览器默认的格式化模式(用CSS样式而非HTML标签)导致的,以下是可靠的解决方法:
方法一:强制切换到HTML标签模式后重复执行superscript命令
浏览器默认可能用vertical-align: super的CSS样式实现上标,而非<sup>标签,这时候重复执行superscript命令无法触发切换。先切换到HTML标签格式化模式,再执行命令即可恢复普通文本:// 切换为使用HTML标签而非CSS样式 document.execCommand("styleWithCSS", false, false); // 再次执行superscript命令取消上标 document.execCommand("superscript", false, undefined);方法二:使用formatBlock命令重置格式
直接用formatBlock将选中内容重置为普通行内元素,也能取消上标:document.execCommand("formatBlock", false, "span");
注意:无论哪种方法,都要确保完全选中了需要取消上标的文本内容,如果选区只覆盖部分上标文本,命令可能无法正常生效。
内容的提问来源于stack exchange,提问作者Abiola Aribisala
相关产品推荐
相关产品推荐

