我希望在鼠标事件中选择文本和图像。我已经尝试了window.getSelection()
,但这只会返回选定的文字而不是图片。
有人可以帮助我了解如何在JavaScript中获取所选图像吗?
答案 0 :(得分:0)
起初我认为这将是duplicate of this,但话又说回来,另一个问题并没有显示如何从选择中选择节点。
window.getSelection()
会为您提供选择,但不 当前(或突出显示)选项。您需要使用选择的getRangeAt
方法
var range = window.getSelection().getRangeAt(0);
将为您提供当前所选项目的范围对象(请参阅DOM Range)。在此Range对象中,有startContainer
,endContainer
和commonAncestorContainer
,它们将为您提供所选内容的DOM节点。请注意,对于文本,它将表示文本节点,其父节点可能是p
节点。
如果您阅读了第一个链接,您将知道您也可以从文档中提取它,或者您可以克隆选择并修改它而不触及原始链接。
但是如果你想编辑选择中的内容,你可能需要自己遍历选择中的节点。如果您选择的图片位于选择的开头或结尾,则很容易获得:只需使用startContainer
或endContainer
即可。但是当你在文本块之间有图像时,事情变得棘手。