Если страница и iframe имеют одинаковое происхождение, вы можете перехватить событие с помощью parent
:
parent.document.addEventListener("DOMContentLoaded", postMessageFunctionCall);
Это не будет работать с кросс-происхождением.
Поскольку это устанавливает условие гонки, вы можете сначала проверить документ readyState
:
if (parent.document.readyState !== "loading") {
postMessageFunctionCall();
} else {
parent.document.addEventListener("DOMContentLoaded", postMessageFunctionCall);
}