6

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

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

我想使用 ExecCommand 函数进行创建<cite>-有什么方法可以实现吗?很明显,我想保持完美的解析,就像你在同一个选择中使用它两次时那样,bold而不是像这样的东西。surroundContents

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

4

2 回答 2

6

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

  • 我们手动完成所有操作。正如您所看到的,DOM API 是不够的,并且浏览器之间的实现有所不同,所以我猜(但我没有检查过)在一个浏览器中包含一些具有应用样式的文本的 HTML 在其他浏览器中不起作用(因为应用了一个浏览器strong和第二个bspan内联样式)。
  • 首先,我们需要自定义RangeSelection实现。你不能使用它们,但是有一个很酷的Rangy库。
  • 您需要的下一个组件是一组用于应用、删除和检查样式的方法。这是我们的 impl
  • 最后一个组件是琐碎的 -自定义命令,因为它很方便模仿 W3C 的 API 和想法。
于 2012-08-28T19:33:11.973 回答
0

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

于 2012-08-28T11:45:39.267 回答