前言

提示:记录的大概内容:
背景介绍: 当前项目是一个由angular重构为vue的类型,在angular界面中,开发vue的功能,并通过iframe的方式嵌入到我们的angular项目中。
我在子界面找那个想调用父界面的组件,传入信息,处理数据。子界面中通过

window.parent.postMessage({
data: data
})

传递信息到父界面。

但是,我在子界面中(这个是嵌入的iframe界面),想向父界面传递消息的时候,报错,父界面无法正常接收
Uncaught (in promise) DOMException: Failed to execute 'postMessage' on 'Window': [object Object] could not be cloned. at Object.eval [as successCB]


提示:以下是本篇文章正文内容,下面案例可供参考

一、报错?

Uncaught (in promise) DOMException: Failed to execute ‘postMessage’ on
‘Window’: [object Object] could not be cloned. at Object.eval [as
successCB]

二、解决步骤

我这里是因为,我传递的数据是一个对象,我讲对象转为String之后,就可以正常的传递信息,但是我在父界面,拿到这个信息的时候,就需要自己转义一下。
这里简单的给出我的解决方法,后续有时间再进行研究。

//子界面iframe界面传递信息给调用这个iframe的界面
window.parent.postMessage({
   data: JSON.stringify(data)
})
在这里插入代码片

总结

提示:这里对文章进行总结:

主要是对postMessaga的传递信息的一些结构化的理解,需要加深

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐