我的问题是我该怎么做,因为我正在尝试做“简单的WYSIWYG编辑器”,并且我成功地完成了字体大小,粗细等的更改。但是我仍然遇到选色问题。我有一张桌子,上面有不同bgcolors的单元格。我想为表中的每个td调用document.execCommand。我的问题是 contenteditable div中的文本颜色没有改变。即使当我尝试添加颜色的日志记录值时,我也可以读取该值,但是当我尝试更改颜色时,仍然没有任何反应。难道我做错了什么?我的桌子和代码:
<table>
<tr>
<td style="background-color: #ffffff"></td>
<td style="background-color: #ffccc9"></td>
</tr>
</table>
$("#font-menu-color td").on("click",(function(){document.execCommand('foreColor', false, $(this).css("background-color"));}));
答案 0 :(得分:0)
这里的问题似乎是jquery以RGB返回颜色,但是foreColor命令需要以十六进制显示颜色。 引用mdn
foreColor
更改所选内容或插入点的字体颜色。这个 需要十六进制颜色值字符串作为值参数。
单击是鼠标按下+鼠标按下。按下鼠标时,可编辑区域将失去焦点。如果我们在鼠标按下时添加preventDefault,则可编辑区域将保持焦点。
此处为示例-此处为示例-jsfiddle.net/xpvt214o/474448