dir*_*lik 6 html javascript css range getboundingclientrect
我有<textarea>元素并在其中创建范围:
document.createRange()<textarea>获取via的唯一子节点textarea.childNodes[0]range.setStart通过和设置范围开始和范围结束range.setEnd然后我打电话range.getBoundingClientRect():
let textarea = document.querySelector('textarea');
let node = textarea.childNodes[0];
let range = document.createRange();
range.setStart(node, 3);
range.setEnd(node, 5);
console.log(range.getBoundingClientRect());Run Code Online (Sandbox Code Playgroud)
<textarea>aa bb cc</textarea>Run Code Online (Sandbox Code Playgroud)
但我收到ClientRect全零字段的对象,即left = top = width = height = 0. 为什么这些字段为零?
<textarea>请注意,如果我用普通的 div替换,一切正常:
let textarea = document.querySelector('div');
let node = textarea.childNodes[0];
let range = document.createRange();
range.setStart(node, 3);
range.setEnd(node, 5);
console.log(range.getBoundingClientRect());Run Code Online (Sandbox Code Playgroud)
<div>aa bb cc</div>Run Code Online (Sandbox Code Playgroud)