以下是我要做的事情:
我找到了以下js函数,它在textarea中显示所选文本
function getSelected() {
var txt = '';
if (window.getSelection) {
txt = window.getSelection();
} else if (document.getSelection) {
txt = document.getSelection();
} else if (document.selection) {
txt = document.selection.createRange().text;
} else return;
document.selectedtext.value = txt;
}
<textarea name="selectedtext" rows="5" cols="20"></textarea>
但我想要实现的是在复制时获取HTML元素。例如:
<div>some text is entered here</div>
<div>line2</div>
使用上面的JS,textarea中的内容是:
some text is entered here
line2
我期待的是:
<div>some text is entered here</div>
<div>line2</div>
答案 0 :(得分:0)
这是一个比第一次出现时更复杂的问题,因为存在各种边缘情况,其中用户选择容器中的某些内容但不是所有内容。在这种情况下,它应该智能地包装片段与父div?您是否尝试使用样式或多个DOM层次结构?我强烈推荐Rangy Library,它涉及许多这些陷阱。特别是我会从选择对象中查看toHtml()方法。