从queryCommandValue获取所选文本的结果

时间:2013-06-20 14:32:01

标签: javascript wysiwyg

如果从queryCommandValue为所选文本返回值,有什么解决方案吗?
我知道queryCommandValue('bold')返回字符串 truefalse(不是布尔值!)。
我尝试准备一些小的WYSIWYG编辑器,但是......

问题是如何从所选文本中获取值,例如:所选文本用粗体加下划线

2 个答案:

答案 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);