Mar*_*ark 5 javascript jquery wysiwyg webkit contenteditable
我正在尝试使用contenteditable和styleWithCss.
它似乎不适用于webkit.
无论何时我使用execCommand,它都会产生一个<b>而不是我期望的范围.
这是一个演示:http: //jsbin.com/izomo/2/edit
选择部分文本,单击粗体按钮,然后查看html输出.
这是一个错误还是我做错了什么.
非常感谢你.
unn*_*nni 10
我无法在这里的答案中使用这些命令.对于那些仍在讨论这个问题的人来说,这就是如何让它发挥作用.
我们可以将三个值传递给execCommand
document.execCommand( command, uiElement, value )
Run Code Online (Sandbox Code Playgroud)
正如Christopher的优秀答案详细说明,"styleWithCSS"的值默认设置为false,只需尝试:
alert(document.queryCommandState("styleWithCss"));
Run Code Online (Sandbox Code Playgroud)
要将其设置为true,您需要将第三个参数"value"传递为true.像这样:
document.execCommand("styleWithCSS", null, true);
Run Code Online (Sandbox Code Playgroud)
这适用于Firefox和Chrome
似乎一切都按预期工作。请参阅WebKit BugZilla 上的错误 13490。
编辑: 2009 年 2 月 3 日,在变更集40560 中的 WebKit 源中添加了对 styleWithCSS 的支持。
也就是说,似乎从那时起,无论如何,styleWithCSS始终设置为false,而在更改之前,样式命令始终与 CSS 一起应用,好像styleWithCSS存在但始终设置为true。
document.execCommand根据Mozilla 文档,我什至尝试按如下方式重写您的行:
document.execCommand("styleWithCSS", true, null);
document.execCommand("bold", false, null);
Run Code Online (Sandbox Code Playgroud)
这些修改后的命令在 Firefox 中仍然有效,但不适用于 Chrome 5 或 Safari 5(在 Windows 上和今天已安装)。
因此,这似乎是一个 WebKit 错误。