【问题标题】:How to pass a File object via postMessage or any similar function如何通过 postMessage 或任何类似函数传递 File 对象
【发布时间】:2016-03-30 20:59:02
【问题描述】:
有没有办法通过postMessage 或任何类似函数传递File 对象?
我需要在与页面相关的 JS 代码和来自内容脚本的代码之间进行通信,如 documentation 中所述。
如果我尝试直接传递它会给我以下错误:
未捕获的 DataCloneError:无法在“窗口”上执行“postMessage”:
无法克隆对象
【问题讨论】:
标签:
javascript
google-chrome
google-chrome-extension
【解决方案1】:
当 postMessage 发送一个不受支持的对象作为参数时,会出现Uncaught DataCloneError: Failed to execute 'postMessage' on 'Window': An object could not be cloned 错误消息。
查看page,了解如何使用频道消息。
基于此SO question,替代方法是使用您希望传递的任何类型数组的支持 ArrayBuffer 实例的数组。