我在页面上有2个iframe,我正在尝试使用postMessage将DOM元素从一个iframe传递到另一个iframe。但是铬一直给我错误:
“DataCloneError:无法克隆对象。”
有没有解决这个问题的方法?
答案 0 :(得分:4)
根据spec,你不能发送DOM节点,它会抛出错误。
消息可以是结构化对象,例如嵌套对象和数组,可以包含JavaScript值(字符串,数字,Date对象等),并且可以包含某些数据对象,如File Blob,FileList和ArrayBuffer对象。
答案 1 :(得分:0)
您可以尝试使用 innerHTML ,它可以“ 获取或设置元素中包含的HTML或XML标记。”(https://developer.mozilla.org/en-US/docs/Web/API/Element/innerHTML)
使用innerHTML,您可以将元素的内容作为字符串传递,然后在另一个iframe中,再次使用innerHTML插入该内容。
在此答案中,有一种简单的方法来获取节点的innerHTML内容: https://stackoverflow.com/a/1750860/1401341
您不会将事件附加到元素上,但是在某些情况下,此方法就足够了。