ResizeObserver 最初是否在页面加载时调用?

Does ResizeObserver invoke initially on page load?

似乎当我在 DOMContentLoaded 事件上将节点传递给 ResizeObserver.observe() 时,它会立即调用。这被认为是正常行为吗?

是的,此行为符合规范 (ref.):

  • Observation will fire when watched Element is inserted/removed from DOM.

  • Observation will fire when watched Element display gets set to none.

  • Observations do not fire for non-replaced inline Elements.

  • Observations will not be triggered by CSS transforms.

  • Observation will fire when observation starts if Element is being rendered, and Element’s size is not 0,0.

所以在你的情况下,要么元素还没有在 DOM 中并且情况 1 会触发它,要么它已经触发,并且情况 5 会 (尽管在 DOMContentLoaded,应该是 5 ;).