正在选择的html:
some te<b>xt here is bold</b>ed, I guess
|______________________| <- the selection range
所以,选中的.toHtml()是这样的:
<b>ere is bold</b>ed, I gue
但这不在原始文件中。
所以,我想要做的是扩展选择,使其包含整个BOLD标签。
这很容易检测,因为你只需要进行测试
a = rangy.getSelection()
a.anchorNode.parentElement != a.focusNode.parentElement
文档指出rangy范围采用setStartBefore(Node)
方法:http://code.google.com/p/rangy/wiki/RangyRange
所以,我得到了当前的范围
b = a.getRangeAt(0)
并尝试setStartBefore:
b.setStartBefore(a.anchorNode.parentNode)
因为我在控制台中完成了这一切,所以我立即得到反馈
undefined
导致这种情况的原因,以及如何找到解决我想要解决的问题的解决方案?
更新:
根据Tim Down的建议,我尝试了以下内容:
原文:
它应该已经扩展到包括 Mass Ef 它不应该有吗?
更新2:
解决方案(根据Tim Down)
答案 0 :(得分:3)
您需要重新选择范围:
a.setSingleRange(b);
顺便提一句parentElement
并非普遍支持:它仅从IE开始,最近已进入DOM4 spec并且在Firefox中尚不支持(support is coming in Firefox 9.0,显然) 。您需要基于parentNode
和nodeType
的解决方法。