当您使用 WYSIWYG 编辑器并选择文本并对其应用例如粗体字时,浏览器将使用<span style="font-weight:bold">
标签包装所选内容(假设您已调用document.execCommand("useCSS", false)
和/或document.execCommand("styleWithCSS", true)
)。现在,如果您选择其中的一个子集并再次应用粗体,它会将原始粗体标签拆分为如下内容
<span style="font-weight:bold">Something</span>
Not selected
<span style="font-weight:bold">Selected</span>
在我正在开发的产品中,我们支持一系列 WYSIWYG 功能,包括一些 execCommand 不直接支持的功能(例如添加文本级别(类)以同时应用字体系列和字体大小),以及我们遇到了嵌套标签的问题。有没有办法告诉浏览器从样式中删除当前范围并基本上关闭以前的标签并在内容之后打开新标签?
我没有立即在execCommand 参考中看到任何内容。
我们使用rangy 1.2.3取得了一些成功,但我不知道我是否缺少某些命令。
当您添加多种样式时,这会变得更加复杂,因为在上面的示例中添加粗体和斜体,然后在中间删除粗体将产生三个跨度,两个带有粗体和斜体文本,中间只有斜体。
目前,我们将编辑器的使用限制在 Chrome 上。