3

以下最小的 HTML 文件会导致浏览器控制台出错。File从 Chrome 中的网络工作者访问时未定义。

我对此感到有些困惑:它在 Firefox 上运行得非常好,我希望 Chrome 在开发版本中已经解决了这个问题(问题似乎出现在 Chrome 22、23 和 24 中)。

我是否遗漏了什么,或者是否有一种解决方法可以让它与 Chrome(甚至可能是其他浏览器)一起使用?

<html>
<body>
<script type="text/javascript">
// File seems to be defined
var slice = File.prototype.webkitSlice;

window.URL = window.URL || window.webkitURL;
// File is not defined when creating the worker below
var blob = new Blob(["var slice = File.prototype.webkitSlice;"]);
var blobURL = window.URL.createObjectURL(blob);

// Getting:
// Uncaught TypeError: Cannot read property 'prototype' of undefined 
var worker = new Worker(blobURL);
</script>
</body>
</html>
4

2 回答 2

2

如果您更改FileBlob,则您的脚本有效。File继承自Blob

var blob = new Blob(["var slice = Blob.prototype.webkitSlice;"]);

对于以下任何人:crbug.com/147503

于 2012-12-04T06:13:02.620 回答
0

WebkitSlice在 chrome 最新版本中已弃用,因此请使用slice它来代替。并使用它

正如埃比德尔所说

var blob = new Blob(["var slice = Blob.prototype.slice;"]);
于 2013-01-23T07:50:22.153 回答