最近,我得到这个postMessage无法克隆错误.它发生在大多数最新的浏览器上,如Chrome 68,Firefox 61.0,IE11,Edge.
无法在'Window'上执行'postMessage':
function (a){if(qe.$a.hasOwnProperty(a))return qe.$a[a]}无法克隆.
堆栈跟踪是:
错误:无法在'Window'上执行'postMessage':
function (a){if(qe.$a.hasOwnProperty(a))return qe.$a[a]}无法克隆.
在_reportEvent(eval at(:1:35637),:94:35)
at eval(eval at(:1:35637),:55:5)
at eval(eval at(:1:35637),:433:11 )
在DevTools中搜索我的页面gtm.js源代码显示为代码片段的来源:
我的网页上有Google跟踪代码管理器跟踪代码.为什么会这样?
我正在开发一个名为 Ozai 的帮助程序库,以使网络工作者更轻松,但在 Firefox 中遇到了问题。我从 URL Blob 创建了一个网络工作者并尝试将此有效负载发布到它:
msg = {
"id":"0fae0ff8-bfd1-49ea-8139-3d03fb9584e4",
"fn":"fn",
"args":[100,200]
}
Run Code Online (Sandbox Code Playgroud)
使用此代码:
worker.postMessage(msg)
Run Code Online (Sandbox Code Playgroud)
但它抛出一个DataCloneError异常。看起来 Firefox 的结构化克隆实现在一个非常简单的对象上失败了。代码在 Chrome 和 Safari 上运行没有问题,但在最新版本的 Firefox 中失败。我在这里错过了什么吗?我如何解决这个问题(最好不要对有效负载进行字符串化)?
这是一个小提琴: http : //jsfiddle.net/V8aCy/6/
还有一张 Firelord Ozai 的照片:
