首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >getBoundingClientRect返回0作为上、左、右、底部的Safari

getBoundingClientRect返回0作为上、左、右、底部的Safari
EN

Stack Overflow用户
提问于 2016-11-24 09:27:05
回答 1查看 3.6K关注 0票数 5

所以,我有一个由Facebook的draft-js驱动的可满足的div。我需要在div中获取插入符号的可视位置,我实现了这个(在Firefox和Chrome中工作):

代码语言:javascript
运行
复制
const selection = window.getSelection && window.getSelection();
if (selection.rangeCount > 0) {
    const coordinates = selection.getRangeAt(0).getBoundingClientRect();
}

在Chrome和Firefox的情况下,我得到正确的坐标。然而,在Firefox中,我获得了所有位置属性的0。有任何解决办法/跨浏览器解决方案吗?

EN

回答 1

Stack Overflow用户

发布于 2017-05-30 11:36:01

似乎我已经使用下一段代码修复了这些问题:

代码语言:javascript
运行
复制
let range = window.getSelection().getRangeAt(0);
range = range.cloneRange();
range.setStart(range.startContainer, 0);
range.getBoundingClientRect();

这是小提琴

更新:2020年2月13日:

这里是更新的小提琴,当输入是多行时,第一行的插入符位置是固定的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40782418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档