如果从queryCommandValue
为所选文本返回值,有什么解决方案吗?
我知道queryCommandValue('bold')
返回字符串 true
或false
(不是布尔值!)。
我尝试准备一些小的WYSIWYG编辑器,但是......
问题是如何从所选文本中获取值,例如:所选文本用粗体加下划线?
答案 0 :(得分:3)
不,没有办法。那是因为queryCommandValue
没有告诉你所选文本的状态,而是关于输入。同样,如果您选择一个粗体而非粗体的段落,queryCommandValue
无法告诉您某些文本是粗体而某些文本不是粗体。从本质上讲,它会告诉您下一个输入的值;在这个例子中,如果你按下一个字符键,那么它是否是粗体(这里,它取决于你开始选择的位置:粗体格式内部)。
此外,您应该知道可以使用document.queryCommandState
来获取返回的布尔值。当然,它只适用于布尔值,颜色,字体之类的东西,你仍然想要使用queryCommandValue
答案 1 :(得分:0)
您尝试过吗?获取样式值
var selection = window.getSelection();
console.log(selection.anchorNode.parentNode.style);
这将获得标签名称:
var selection = window.getSelection();
console.log(selection.anchorNode.parentNode.tagName);