Javascript webkit stylewithcss contenteditable不工作?

Javascript webkit stylewithcss contenteditable不工作?,javascript,jquery,webkit,wysiwyg,contenteditable,Javascript,Jquery,Webkit,Wysiwyg,Contenteditable,我正在尝试使用contenteditable和styleWithCss 它在webkit中似乎不起作用 每当我使用do-execCommand时,它都会生成一个,而不是我预期的范围 下面是一个演示: 选择部分文本,单击粗体按钮,然后查看html输出 这是一个错误还是我做错了什么 非常感谢。似乎一切都在按预期进行。请参阅WebKit BugZilla上的 编辑:对styleWithCSS的支持于2009年2月3日添加到WebKit的源代码中 也就是说,从那时起,似乎无论发生什么,styleWit

我正在尝试使用contenteditable和styleWithCss

它在webkit中似乎不起作用

每当我使用do-execCommand时,它都会生成一个
,而不是我预期的范围

下面是一个演示:

选择部分文本,单击粗体按钮,然后查看html输出

这是一个错误还是我做错了什么

非常感谢。

似乎一切都在按预期进行。请参阅WebKit BugZilla上的

编辑:对styleWithCSS的支持于2009年2月3日添加到WebKit的源代码中

也就是说,从那时起,似乎无论发生什么,
styleWithCSS
总是设置为
false
,而在更改之前,样式命令总是与CSS一起应用,就好像
styleWithCSS
存在,但总是设置为
true

我甚至试着按照以下要求重写您的
文档.execCommand
行:

这些修改后的命令在Firefox中仍然有效,但在Chrome 5或Safari 5中都不起作用(在Windows上和今天安装的)


因此,这似乎是一个WebKit bug。

我无法将其与这里两个答案中的命令一起使用。对于那些还在为这个问题绞尽脑汁的人来说,这就是如何让它发挥作用

document.execCommand("styleWithCSS", true, null);
document.execCommand("bold", false, null);
我们可以将三个值传递给execCommand

document.execCommand( command, uiElement, value ) 
Christopher的优秀答案详细说明了“styleWithCSS”的值默认设置为false 试试看:

alert(document.queryCommandState("styleWithCss"));
要将其设置为true,需要将第三个参数“value”传递为true。像这样:

document.execCommand("styleWithCSS", null, true);

这在Firefox和Chrome中都有效,这是针对stylewithcss的false,我正在尝试使用stylewithcss true。噢!可以我要潜水了。和原版一样的虫子,但现在反方向了?经过进一步研究,我更新了我的答案。我认为添加了
styleWithCSS
支持本应使其可配置,但它仍停留在默认状态,即
false
。(见)不幸的消息,但谢谢你。确认错误后,我将接受您的答案。第三个参数是您想要的命令值。对于
样式WithCSS
,您需要一个布尔第三个参数。第二个参数几乎总是不相关的,可以是
false
。因此
document.execCommand(“styleWithCSS”,false,true)
document.execCommand("styleWithCSS", null, true);