如何获取用户选择文本的容器 id(例如,p 或 div 的 id)?
我想列出所选文本,用户选择一个文本然后单击一个按钮添加到列表中。当用户单击列表中的文本时,我想突出显示原始选择的位置。我需要容器的 id,因为所选文本可能不是唯一的并且在文档中出现多次。
我得到这样的选定文本从用户选择的文本中返回 HTML
如何获取用户选择文本的容器 id(例如,p 或 div 的 id)?
我想列出所选文本,用户选择一个文本然后单击一个按钮添加到列表中。当用户单击列表中的文本时,我想突出显示原始选择的位置。我需要容器的 id,因为所选文本可能不是唯一的并且在文档中出现多次。
我得到这样的选定文本从用户选择的文本中返回 HTML
window.getSelection().anchorNode
- 为您提供选择开始
window.getSelection().focusNode
的 DOM 元素 - 为您提供选择结束的 DOM 元素
这是可以实现跨浏览器的一种方法(未经测试)
var getSelectionContainer = function() {
if (document.selection){ // IE
return document.selection.createRange().parentElement();
}
var select = window.getSelection();
if (select.rangeCount > 0) {
return select.getRangeAt(0).startContainer.parentNode;
}
};
(在 5 秒前选择一些文本,然后查看控制台)