Javascript JS QueryCommand状态(“上标”)始终返回false
如何在contentEditable元素中检测sub或sup?我知道我做这件事已经晚了,但出于文档目的,我想我会回复它: 这很可能与Javascript JS QueryCommand状态(“上标”)始终返回false,javascript,wysiwyg,contenteditable,Javascript,Wysiwyg,Contenteditable,如何在contentEditable元素中检测sub或sup?我知道我做这件事已经晚了,但出于文档目的,我想我会回复它: 这很可能与/元素的样式有关。 在@tim down的示例中,使用了默认样式。我更新了fiddle()以使用一些样式,然后queryCommandState将返回false。(在本例中,实际上是垂直对齐:基线;属性将其打断) 规范实际上包含了关于如何根据有效命令值确定状态的注释: 注[有效命令值]在逻辑上有点像CSS计算值或解析值, 事实上,对于大多数命令,它与CSS解析的值是
/
元素的样式有关。
在@tim down的示例中,使用了默认样式。我更新了fiddle()以使用一些样式,然后queryCommandState
将返回false
。(在本例中,实际上是垂直对齐:基线;
属性将其打断)
规范实际上包含了关于如何根据有效命令值确定状态的注释:
注[有效命令值]在逻辑上有点像CSS计算值或解析值,
事实上,对于大多数命令,它与CSS解析的值是相同的
(请参见算法的结尾)。我们需要一个单独的概念来解决一些问题
由于某些原因我们不能依赖CSS的命令:createLink和
取消链接与CSS无关,背景色和hiliteColor需要
特殊处理,因为背景色不是遗传的
属性、下标和上标依赖于
/
而不是CSS
垂直对齐、删除线和下划线不映射到“唯一”
CSS属性
资料来源:
下面是上标/下标的实际算法(来自同一规范):
如果节点是子节点,则受下标影响的集合为true。在Chrome和Firefox中适用于我:在Firefox或chromeAwesome answer上都不能使用hiliteColor命令。你怎么检查自己?有什么想法吗?
document.queryCommandState("superscript"); //always return false
document.queryCommandState("bold"); // works fine