ExecCommand函数的定义是否为粗体?

时间:2012-08-28 11:40:22

标签: javascript contenteditable execcommand

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

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

我想使用ExecCommand函数来创建<cite> - 有什么办法可以实现这个目的吗?显然,我希望保持完美无瑕的解析,例如bold而不是像surroundContents那样,当你在同一个选择中使用它时会失败。

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

2 个答案:

答案 0 :(得分:4)

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

  • 我们手动执行一切。正如您所看到的,DOM API是不够的,浏览器之间的实现也不同,所以我想(但我没有检查过),在一个浏览器中包含一些带有应用样式的文本的HTML在其他浏览器中不起作用(因为应用了一个浏览器) strong以及内联样式的第二个bspan
  • 首先,我们需要自定义RangeSelection实施。你不能使用它们,但有一个很酷的Rangy lib。
  • 您需要的下一个组件是一组应用,删除和检查样式的方法。这是our impl
  • 最后一个组件是微不足道的 - custom commands,因为模仿W3C的API和想法很方便。

答案 1 :(得分:0)

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