window.postMessage接口里的message参数
2016-04-20
最近刚好在做一些iframe方面的东西,就使用了下postMessage这个API,结果遇到个奇怪的错误。

原因是message参数所使用的序列化的算法(结构化克隆算法)对于message的内容与结构有一定的限制。
Error与Function对象无法被该算法复制,如果message中包含这样的对象,将会抛一个DATA_CLONE_ERR异常- message中如果包含
DOM节点,同样会抛一个DATA_CLONE_ERR异常 - 某些对象的属性不会被复制
RegExp对象的lastIndex属性不会被复制- 属性描述符,
setters以及getters同样不会被复制,所以如果一个对象通过属性描述符设置为只读的,在复制后将变为可读可写 - 对象的原型链也不会被复制