使用javascript获取所选内容的原始HTML
如何使用Javascript获取页面上所选内容的原始HTML?为了简单起见,我坚持使用支持使用javascript获取所选内容的原始HTML,javascript,html,selection,getselection,Javascript,Html,Selection,Getselection,如何使用Javascript获取页面上所选内容的原始HTML?为了简单起见,我坚持使用支持window.getSelection的浏览器 这是一个例子;两个|之间的内容代表我的选择 <p> The <em>quick brown f|ox</em> jumps over the lazy <strong>d|og</strong>. </p> 在上面的示例中,发出警报的内容将折叠尾随元素,并返回字符串ox跳过延迟d
window.getSelection
的浏览器
这是一个例子;两个|
之间的内容代表我的选择
<p>
The <em>quick brown f|ox</em> jumps over the lazy <strong>d|og</strong>.
</p>
在上面的示例中,发出警报的内容将折叠尾随元素,并返回字符串ox跳过延迟d
如何返回字符串
ox跳过lazyd
?查看API,我认为如果不将HTML转换为DocumentFragment,就无法提取HTML,默认情况下,DocumentFragment会关闭任何打开的标记,使其成为有效的HTML
请参阅以获得类似的问题。您必须有效地编写自己的HTML序列化程序 从
selectionRange.startContainer
/startOffset
开始,沿着树向前走,直到到达endContainer
/endOffset
,边走边从节点输出HTML标记,进入元素时包括打开的标记和属性,进入父节点时包括关闭标记
没有太多乐趣,尤其是如果你要支持非常不同的IENo,我想也不是。但它已经被问了好几次,所以我想一定有人需要它。
var selectionRange = window.getSelection().getRangeAt(0);
selectionContents = selectionRange.cloneContents(),
fragmentContainer = document.createElement('div');
fragmentContainer.appendChild(selectionContents);
alert(fragmentContainer.innerHTML);