getBoundingClientRect在Safari中的顶部,左侧,右侧,底部返回0
问题描述:
所以,我有一个可供自己使用的div,它由Facebook的draft-js
供电。我需要得到该div的插入符的可视位置,我实现了这个(在Firefox和Chrome其中工程):getBoundingClientRect在Safari中的顶部,左侧,右侧,底部返回0
const selection = window.getSelection && window.getSelection();
if (selection.rangeCount > 0) {
const coordinates = selection.getRangeAt(0).getBoundingClientRect();
}
我得到正确的坐标,Chrome和Firefox的情况下。但是,在Firefox中,所有位置属性都为0。任何解决方法/跨浏览器解决方案?
答
好像我已经固定使用一个代码的问题:
let range = window.getSelection().getRangeAt(0);
range = range.cloneRange();
range.setStart(range.startContainer, 0);
range.getBoundingClientRect();
这里是fiddle。