粗体的ExecCommand函数的定义

Definition of ExecCommand function for bold?

本文关键字:定义 函数 ExecCommand      更新时间:2023-09-26

ExecCommand提供了一种在iFrame中加粗文本、使其斜体、下划线等的方法。

但它缺少创建<cite><strong><em>的选项(有formatBlock,但仅用于块元素,而不用于内联元素)。

我想使用ExecCommand函数来创建<cite>-有什么方法可以实现吗?很明显,我希望像bold那样保持完美的解析,而不是像surroundContents那样在同一选择中使用两次会失败的解析。

我正在寻找ExecCommand粗体命令的定义,或者使用现有命令完美添加<cite>的方法。有什么建议吗?我无法从浏览器的功能中提取它。当我尝试这样做时,它会说"本机代码"。

我看到在前面的一条评论中提到了CKEditor:)所以这就是我们处理执行命令的方式:

  • 我们手动执行所有操作。正如你所看到的,DOM API是不够的,而且不同浏览器之间的实现也不同,所以我想(但我还没有检查这一点)在一个浏览器中包含一些应用样式的文本的HTML在另一个浏览器中将不起作用(因为一个浏览器应用了strong,第二个应用了内联样式的bspan
  • 首先,我们需要自定义范围和选择实现。你不能使用它们,但有一个很酷的Rangy lib
  • 您需要的下一个组件是一组用于应用、删除和检查样式的方法。这是我们的impl
  • 最后一个组件是琐碎的自定义命令,因为模仿W3C的API和思想很方便

我一年前研究过这个问题,除了在嵌套标签上使用regex而不是EC之外,找不到任何解决方案。我在没有使用ExecCommand的情况下开发了文本编辑器。