有没有办法在 W3C 兼容的浏览器中获取 JavaScript 范围对象的 html 字符串?
例如,假设用户选择以下内容:Hello <b>World</b>
可以使用该方法将“Hello World”作为字符串获取Range.toString()
。(在 Firefox 中,也可以使用document的getSelection
方法。)
但我似乎无法找到获取内部 HTML 的方法。
经过一番搜索,我发现范围可以转换为DocumentFragment
对象。
但是DocumentFragments
没有innerHTML
属性(至少在 Firefox 中;没有尝试过 Webkit 或 Opera)。
这对我来说似乎很奇怪:很明显应该有一些方法可以访问选定的项目。
我意识到我可以创建一个documentFragment
,将文档片段附加到另一个元素,然后获取该innerHTML
元素的。
但是该方法会自动关闭我选择的区域内的所有打开标签。
除此之外,肯定有一个明显的“更好的方法”,而不是将它附加到 dom 只是为了将它作为一个字符串。
那么,如何获取 Range 或 DocFrag 的 html 字符串呢?