3

我正在尝试使用可转移对象,但在调用 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]);

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

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

4

1 回答 1

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

因此,您现在将数据传输到网络工作者的选项非常有限。但请查看:

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

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

于 2013-01-25T20:08:56.860 回答