我正在与 rangy 合作,并遇到了一个与选择及其跨浏览器行为有关的问题。
我在 div 中有一些元素(例如超链接),我希望能够在单击该元素内部时选择outerHTML 。
<div>Lorem ipsum <a href="#">duo dolores</a> tempor.</div>
因此,我尝试range.selectNode()
并期望选择整个节点,以便selection.toHtml()
为我提供超链接的 outerHTML。要获得 innerHTML 我会调用range.selectNodeContents()
. 这就是它在 IE 9 中的工作方式。
但在 Chrome 中,在这两种情况下都只选择了 innerHTML。rangy 插件(应该是跨浏览器)中是否存在错误,或者我做错了什么?
检查这个小提琴,看看我的意思。首先在 IE 9 中打开它,将插入符号放在超链接内,然后单击第一个按钮(检查输出selection.toHtml()
)。然后再次将插入符号放在超链接内并单击第二个按钮(再次检查输出)。之后在 Chrome 中执行相同的操作。