【发布时间】:2011-11-29 14:04:20
【问题描述】:
被选中的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
文档指出范围很广的范围有一个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)
【问题讨论】:
-
问题中提供的解决方案实际上并不是真正的解决方案。如果是,“b.canSurroundContents()”将返回“true”。我正在尝试做同样的事情,但仍然无法让“b.canSurroundContents”返回 true。有什么想法吗?
-
我这里已经详细询问过了,举例:stackoverflow.com/questions/13141992/…
标签: javascript rangy