Javascript 通过Iframe postMessage传递回调?

Javascript 通过Iframe postMessage传递回调?,javascript,iframe,postmessage,Javascript,Iframe,Postmessage,我想允许外部iframe调用父站点上可用的函数。 问题是,我需要孩子获得该操作的结果(或错误),并根据结果做一些事情。 由于无法通过postMessage传递回调函数,是否有其他方法可以实现此目的?再次使用postMessage 子文档调用父文档上的postMessage,请求执行该操作 父文档中的消息事件处理程序由该消息触发,该消息生成一个结果,然后使用结果调用子文档上的postMessage(如果结果复杂,可以将其编码为JSON) 子文档中的消息事件处理程序获取响应并对其进行处理 再次使用p

我想允许外部iframe调用父站点上可用的函数。 问题是,我需要孩子获得该操作的结果(或错误),并根据结果做一些事情。 由于无法通过postMessage传递回调函数,是否有其他方法可以实现此目的?

再次使用postMessage

  • 子文档调用父文档上的
    postMessage
    ,请求执行该操作
  • 父文档中的消息事件处理程序由该消息触发,该消息生成一个结果,然后使用结果调用子文档上的
    postMessage
    (如果结果复杂,可以将其编码为JSON)
  • 子文档中的消息事件处理程序获取响应并对其进行处理
  • 再次使用postMessage

  • 子文档调用父文档上的
    postMessage
    ,请求执行该操作
  • 父文档中的消息事件处理程序由该消息触发,该消息生成一个结果,然后使用结果调用子文档上的
    postMessage
    (如果结果复杂,可以将其编码为JSON)
  • 子文档中的消息事件处理程序获取响应并对其进行处理

  • 我就是这样解决的,最终: 当孩子向父母发送消息时,我: A.将唯一钥匙连接到有效负载上。 创造一个承诺。 然后,当操作在父端完成时,它将返回一条消息,其中包含结果+键。
    当家长发送响应时,我使用密钥来解决正确的承诺。

    我就是这样解决的,最终: 当孩子向父母发送消息时,我: A.将唯一钥匙连接到有效负载上。 创造一个承诺。 然后,当操作在父端完成时,它将返回一条消息,其中包含结果+键。
    当父级发送响应时,我使用密钥来解析正确的承诺。

    如果此函数是异步的,该怎么办?假设孩子希望在下一次调用之前等待父响应?“如果此函数是异步的,该怎么办?”-邮件后通信仍然是异步的。“假设孩子希望在下一次调用之前等待父响应?”-然后直到步骤3才进行下一次调用。如果此函数是异步的,该怎么办?假设孩子希望在下一次调用之前等待父响应?“如果此函数是异步的,该怎么办?”-邮件后通信仍然是异步的。“假设孩子希望在下一次调用之前等待父响应?”-然后直到步骤3才进行下一次调用。