Summary: Is there a way to get a list of the elements currently observed by a given ResizeObserver?
Assume an existing ResizeObserver that observes some elements
let observer = new ResizeObserver(_ => _.forEach(_ => console.log(_.contentBoxSize[0])));
observer.observe(document.getElementById('my-element-1');
observer.observe(document.getElementById('my-element-2');
Is there a way to get the elements the ResizeObserver is observing like
observer.getObservedElements() === [ // this API does not exist
document.getElementById('my-element-1'),
document.getElementById('my-element-2')
];
Use cases that I would have used such an API (there are probably more):
- Consider a single generic ResizeObserver, shared in the whole application, that performs the same action for all observed elements (e.g. fire a framework-internal "element resize" event). No-one knows what elements are already observed. But I have to make sure that no already-observed element is observed again (otherwise I would get "resize events" twice).
- For testing purposes I need to assert that an element is observed. Mocking ResizeObserver would be a lot of effort and would probably interfere with other components that need the real ResizeObserver.
Am I missing something from the MDN docs or the CSSWG draft? I only see observe(), unobserve() and disconnect().