将createObjectURL的结果分配给图像无法在移动Safari上加载资源

时间:2018-06-25 14:04:46

标签: javascript html5 mobile-safari

我正在从相机捕获图片,如下所示:

<input type="file" accept="image/*" capture="camera">

我绑定到输入的change事件。

var input = document.querySelector('input');
input.addEventListener('change',  processFile);

制作图片(或从库中选择图片)时,将调用processFile函数:

processFile = function (e) {
    var imageUrl = URL.createObjectURL(e.target.files[0]);
    var image = new Image();
    image.src = imageUrl;
}

这对于大多数浏览器都可以正常工作,但是在移动Safari(10.1)上,出现以下异常:

[Error] Failed to load resource: the server responded with a status of 404 (Not Found) (blob:https://example.com/29ce6a7c-c266-4b39-8de2-9ec61cc38455, line 0)

我调试了,将imageUrl(blob :)分配给img对象的src属性时出错。

我也用一个小码本复制了它:

https://codepen.io/geersch/pen/rKrwEN

对我来说,仅在iOS 10.1上失败。还通过iOS 10.3.2进行了测试,并且可以正常运行。有人知道发生了什么吗?

1 个答案:

答案 0 :(得分:0)

原来有问题的iPad设备正在iOS 10.1 beta 1上运行,这很可能是造成问题的原因。