检测嵌入页面是否从iframe内部完全加载

时间:2019-04-03 10:03:19

标签: javascript iframe event-handling addeventlistener

我希望在嵌入页面完全加载后从iframe发送发布消息。如何从iframe内部检测情况?

我已经尝试将eventListener用于“ DOMContentLoaded”

document.addEventListener("DOMContentLoaded", postMessageFunctionCall);

但是它不响应来自父级的事件。 是否有可能从iframe内部对此事件做出反应?

1 个答案:

答案 0 :(得分:0)

如果页面和iframe来自同一来源,则可以通过parent挂接事件:

parent.document.addEventListener("DOMContentLoaded", postMessageFunctionCall);

但是,这将无法跨域使用。

由于设置了竞争条件,因此您可能需要先检查文档的readyState

if (parent.document.readyState !== "loading") {
    postMessageFunctionCall();
} else {
    parent.document.addEventListener("DOMContentLoaded", postMessageFunctionCall);
}