2010-06-21 72 views
5

我正在尝试使用contenteditable和styleWithCss。webkit stylewithcss contenteditable不工作?

它似乎不适用于webkit。

无论何时我使用execCommand,它会生成一个<b>而不是我期望的范围。

这里有一个演示: http://jsbin.com/izomo/2/edit

文本的选择部分,点击大胆的按钮,查看HTML输出。

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

非常感谢。

回答

2

看起来好像一切都按预期工作。 请参阅WebKit BugZilla上的Bug 13490

编辑:支持styleWithCSS加入WebKit的源changeset 40560,03 2009年2月

这就是说,它好像从那以后,不管是什么,styleWithCSS始终设置为false,而在更改之前,样式命令总是与CSS一起应用,就像存在styleWithCSS一样,但始终设置为true

我甚至尝试重写你的document.execCommand行,如下所示,按照Mozilla documentation

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

这些修改的命令仍然工作在Firefox,而不是在任何浏览器5或Safari 5(包括Windows和安装今天)。

所以,看起来这是一个WebKit错误。

+0

这对stylewithcss假,我想做stylewithcss真。 – Mark 2010-06-25 18:57:30

+0

D'oh!好的。我会潜水。 – 2010-06-25 22:58:18

+0

与原始版本相同的错误,但现在相反?经过一些更多的研究后,我更新了答案。我认为'styleWithCSS'支持的增加应该是可配置的,但它仍然处于默认状态,即'false'。 (见[Editor.cpp:940](http://trac.webkit.org/browser/trunk/WebCore/editing/Editor.cpp?rev=61418#L940)。) – 2010-06-26 01:19:45

1
document.execCommand("styleWithCSS", true, null); 
document.execCommand("bold", false, null); 
10

我无法得到这个在两个答案这里的命令工作。对于那些仍在为这个问题感慨万分的人们,这是如何让它发挥作用。

我们可以通过三个值的execCommand

document.execCommand(command, uiElement, value) 

正如克里斯托弗的出色答卷详细介绍了“styleWithCSS”的值默认 设置为false只是尝试:

alert(document.queryCommandState("styleWithCss")); 

要将其设为如果您需要传递第三个参数“value”为true,则为true。就像这样:

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

这个工作在两个Firefox和Chrome

相关问题