首页 > 解决方案 > 如何确定页面是否已加载

问题描述

我将使用postMessage方法在打开原点的窗口后立即将文本发送到打开的窗口。我尝试了以下方法:

let ref = window.open("<address>", "name", "resizable,scrollbars,status");
ref.postMessage("Some Message");

在另一个页面上定义了一个监听器来获取发布的消息,但它不起作用,因为发布的消息是在页面加载完成之前发送的。

有什么方法可以检查打开的窗口上的页面是否已完全加载?

标签: javascripthtml

解决方案


您可以实现“握手”机制,就像这样,

  1. parent 添加一个事件监听器来捕获子消息(window.addEventListener('message', () => {})
  2. 父打开子窗口
  3. 子窗口向父窗口发送“I'm a live”消息(parent.window.opener.postMessage('ImALive', '<url address of parent>')
  4. 父母将其数据发送给孩子

类似的东西。


推荐阅读