ExecCommand函数的粗体字定义?

问题描述 投票:4回答:3

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

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

我想使用ExecCommand函数创建<cite>-有什么方法可以实现?显然,我想保持完美的解析,就像在bold的情况下一样,而不是像surroundContents这样的东西,当您在同一选择上两次使用它时会失败。

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

javascript contenteditable execcommand
3个回答
4
投票

[我看到前面的评论之一提到了CKEditor :)因此,这就是我们处理执行命令的方式:

  • 我们手动进行一切。如您所见,DOM API是不够的,并且浏览器之间的实现也有所不同,所以我猜(但我尚未检查),HTML包含在某些浏览器中具有应用样式的文本在另一种浏览器中将不起作用(因为已应用一种浏览器) strong和第二个bspan(采用内联样式)。
  • 首先,我们需要自定义RangeSelection实现。您无法使用它们,但是有一个很酷的Rangy lib。
  • 您需要的下一个组件是套用,删除和检查样式的方法。这是our impl
  • 最后一个组件很简单-custom commands,因为可以方便地模仿W3C的API和想法。

0
投票

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


0
投票

绝对令人高兴的是,这仍然是7年后的当今浏览器的一个持续问题。

我在Summernote项目Github上创建了一个问题,以进行进一步讨论,如果其他人愿意,可以在这里讨论。

https://github.com/summernote/summernote/issues/3461

© www.soinside.com 2019 - 2024. All rights reserved.