使用transferable objects / webkitPostMessage时出现“类型错误”

时间:2013-01-17 20:48:03

标签: html5 webkit web-worker

我正在尝试使用可转移对象,但在调用webkitPostMessage时遇到“类型错误”。

var message = new Object();
message.type = "mask";
message.mask = mmask;
message.width = width;
message.height = height;
message.useTransferable = transferableObjects;

webWorker[curWorker].webkitPostMessage(message, [message]);

我在工作线程中也遇到了同样的错误。

我错过了什么吗?你需要更多信息吗?

1 个答案:

答案 0 :(得分:4)

来自规范:

http://www.whatwg.org/specs/web-apps/current-work/multipage/common-dom-interfaces.html#transferable-objects

The following Transferable types exist:

- MessagePort
- ArrayBuffer [TYPEDARRAY]
- CanvasProxy

因此,您现在将数据传输到Web工作人员的选择非常有限。但请查看:

http://updates.html5rocks.com/2012/06/How-to-convert-ArrayBuffer-to-and-from-String

因此,您可以将对象转换为带有window.JSON.parse()的JSON字符串,然后使用链接中的方法将其更改为数组缓冲区,然后将该数组缓冲区发送给worker。