Javascript 获取要插入Div的范围的开始

Javascript 获取要插入Div的范围的开始,javascript,css,google-chrome-extension,range,Javascript,Css,Google Chrome Extension,Range,我正在尝试创建一个Google Chrome扩展,用户可以在其中突出显示页面上的文本,并在文本开头显示一张笑脸。我找到了一个网站,它演示了如何存储和检索一个范围。我的问题是如何获得插入我的的范围的开始 非常简单,因为您只担心Chrome: // Get the range var range = document.getSelection().getRangeAt(0); // Collapse it to the start range.collapse(true); // insert yo

我正在尝试创建一个Google Chrome扩展,用户可以在其中突出显示页面上的文本,并在文本开头显示一张笑脸。我找到了一个网站,它演示了如何存储和检索一个范围。我的问题是如何获得插入我的
的范围的开始


非常简单,因为您只担心Chrome:

// Get the range
var range = document.getSelection().getRangeAt(0);
// Collapse it to the start
range.collapse(true);
// insert your node
range.insertNode(node);

下面是一个工作示例:。注意,它一直在移动笑脸,因为我总是添加相同的节点。如果每次创建一个新节点,则会添加多个笑脸。

是否有方法获取节点的x/y位置?我计划覆盖网站的现有内容。
node.offsetLeft
node.offsetLeft
我尝试了console.log(selectionRange.startContainer.offsetLeft),但我一直得到错误“未定义”。我已经包含了我的代码。@user1277607:最有可能的范围开始在文本节点内,该节点没有
offsetLeft
offsetTop
属性。在Chrome中,您可以使用选择范围的
getclientracts()
方法来获取坐标。这就是为什么要使用
node.offsetLeft
。在选择的开始处插入后,即可执行此操作。
// Get the range
var range = document.getSelection().getRangeAt(0);
// Collapse it to the start
range.collapse(true);
// insert your node
range.insertNode(node);