Javascript JS QueryCommand状态(“上标”)始终返回false

Javascript JS QueryCommand状态(“上标”)始终返回false,javascript,wysiwyg,contenteditable,Javascript,Wysiwyg,Contenteditable,如何在contentEditable元素中检测sub或sup?我知道我做这件事已经晚了,但出于文档目的,我想我会回复它: 这很可能与/元素的样式有关。 在@tim down的示例中,使用了默认样式。我更新了fiddle()以使用一些样式,然后queryCommandState将返回false。(在本例中,实际上是垂直对齐:基线;属性将其打断) 规范实际上包含了关于如何根据有效命令值确定状态的注释: 注[有效命令值]在逻辑上有点像CSS计算值或解析值, 事实上,对于大多数命令,它与CSS解析的值是

如何在contentEditable元素中检测sub或sup?

我知道我做这件事已经晚了,但出于文档目的,我想我会回复它:

这很可能与
/
元素的样式有关。 在@tim down的示例中,使用了默认样式。我更新了fiddle()以使用一些样式,然后
queryCommandState
将返回
false
。(在本例中,实际上是
垂直对齐:基线;
属性将其打断)

规范实际上包含了关于如何根据有效命令值确定状态的注释:

注[有效命令值]在逻辑上有点像CSS计算值或解析值, 事实上,对于大多数命令,它与CSS解析的值是相同的 (请参见算法的结尾)。我们需要一个单独的概念来解决一些问题 由于某些原因我们不能依赖CSS的命令:createLink和 取消链接与CSS无关,背景色和hiliteColor需要 特殊处理,因为背景色不是遗传的 属性、下标和上标依赖于
/
而不是CSS 垂直对齐、删除线和下划线不映射到“唯一” CSS属性

资料来源:

下面是上标/下标的实际算法(来自同一规范):

  • 受下标影响 受上标影响的是两个布尔变量,都是初始值 错
  • 当节点是内联节点时:

    注意Firefox 6.0a2忽略了 垂直对齐用于此目的,只关心和 标签本身。Opera 11.11与此类似,事实上,它的行为也是如此 即使是像bold这样的命令。规格最初遵循Chrome 14 dev,主要是因为WebKit本身将生成具有 垂直对齐sub或super,我们希望正确处理它们。 然而,Ryosuke告诉我WebKit在这里的行为被视为 bug,所以我把它改成了Gecko/Opera


    如果节点是子节点,则受下标影响的集合为true。在Chrome和Firefox中适用于我:在Firefox或chromeAwesome answer上都不能使用hiliteColor命令。你怎么检查自己?有什么想法吗?
    document.queryCommandState("superscript"); //always return false
    document.queryCommandState("bold"); // works fine