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
同样不会被复制,所以如果一个对象通过属性描述符设置为只读的,在复制后将变为可读可写 - 对象的原型链也不会被复制