我正在尝试使用contenteditable和styleWithCss。
它似乎不适用于webkit。
我在任何时候使用execCommand,它会生成<b>
而不是我期望的范围。
这是一个演示: http://jsbin.com/izomo/2/edit
选择文本的一部分,单击粗体按钮,然后查看html输出。
这是一个错误还是我做错了什么。
非常感谢。
答案 0 :(得分:10)
我无法在这里的答案中使用这些命令。对于那些仍然对这个问题感到头疼的人来说,这就是如何让它发挥作用。
我们可以将三个值传递给execCommand
document.execCommand( command, uiElement, value )
正如Christopher的优秀答案详细说明,“styleWithCSS”的值默认设置为false 试试吧:
alert(document.queryCommandState("styleWithCss"));
要将其设置为true,您需要将第三个参数“value”传递为true。像这样:
document.execCommand("styleWithCSS", null, true);
这适用于Firefox和Chrome
答案 1 :(得分:3)
似乎一切都按预期工作。请参阅WebKit BugZilla上的Bug 13490。
编辑: 2009年2月3日,changeset 40560在WebKit的来源中添加了对styleWithCSS的支持。
也就是说,从那时起,无论如何,styleWithCSS
始终设置为false
,而在更改之前,样式命令始终使用CSS,就好像{{1存在,但始终设置为styleWithCSS
。
我甚至尝试按照Mozilla documentation重写您的true
行:
document.execCommand
这些修改后的命令仍可在Firefox中使用,但不适用于Chrome 5或Safari 5(Windows上和今天安装)。
所以,看起来这是一个WebKit错误。
答案 2 :(得分:1)
document.execCommand("styleWithCSS", true, null);
document.execCommand("bold", false, null);