상자 영역 안에있는 모든 요소를 찾으려면 Firefox 확장 기능으로 가장 좋은 방법은 무엇입니까? 모든 요소를 남겨두고 getBoundingClientRect()를 호출하면 페이지에 500 개 이상의 잎이있을 수 있으므로 너무 느릴 것입니다.지역 내의 모든 요소 찾기
도움이 될 것입니다. 감사.
상자 영역 안에있는 모든 요소를 찾으려면 Firefox 확장 기능으로 가장 좋은 방법은 무엇입니까? 모든 요소를 남겨두고 getBoundingClientRect()를 호출하면 페이지에 500 개 이상의 잎이있을 수 있으므로 너무 느릴 것입니다.지역 내의 모든 요소 찾기
도움이 될 것입니다. 감사.
당신은 배열에 발견 된 각 요소를 추가, (다섯 번째마다 모든 하나 픽셀을 방문보다 훨씬 빠르다) document.elementFromPoint
를 사용하고 각 다섯 번째 픽셀을 방문 할 수 있습니다 :
function getElementsInRegion(x, y, width, height) {
var elements = [],
expando = +new Date,
cx = x,
cy = y,
curEl;
height = y + height;
width = x + width;
while ((cy += 5) < height) {
cx = x;
while (cx < width) {
curEl = document.elementFromPoint(cx, cy);
if (curEl && !curEl[expando]) {
curEl[expando] = new Number(0);
elements.push(curEl);
cx += curEl.offsetWidth;
} else {
cx += 5;
}
}
}
return elements;
}
내 부가 기능은 상단에 레이어를 추가, 그래서 내가 찾는 것에 관심이있는 요소는 두 번째 최상위 요소입니다. – Kar