Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript获取所选内容的原始HTML_Javascript_Html_Selection_Getselection - Fatal编程技术网

使用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

如何使用Javascript获取页面上所选内容的原始HTML?为了简单起见,我坚持使用支持
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);