blob在开始时前置为null,例如:blob:null / 72438-4637-23673-34721。但是当我使用相同的src时,它会显示正确的图像。
我正在使用URL.createObjectURL调用。我也尝试过使用webkitURL。两者都返回一个blob,在开头添加null。此外,URL和webkitURL返回的blob值也不相同。
以下是代码段
var dataUrl = canvas.toDataURL();
// The last piece of the data URL after the comma
var byteString = atob(dataUrl.split(',')[1]);
// Populate an array buffer
var arrayBuffer = new ArrayBuffer(byteString.length);
var uint8Array = new Uint8Array(arrayBuffer);
for (var i = 0; i < byteString.length; i++) {
uint8Array[i] = byteString.charCodeAt(i);
}
var blob = new Blob([uint8Array], { type: "image/png" });
var blobVal = URL.createObjectURL(blob);
这里blobVal有“blob:null / 1234-5678-9012- ......”
答案 0 :(得分:3)
原点,文件系统和沙盒iframe(可能是其他人)的原点是null。如果您设置了本地服务器,则应该说http%3A//localhost
,http://localhost
已编码的网址
var arrayBuffer = new ArrayBuffer(100);
var uint8Array = new Uint8Array(arrayBuffer);
for (var i = 0; i < 100; i++) {
uint8Array[i] = i;
}
var blob = new Blob([uint8Array], { type: "image/png" });
var blobVal = URL.createObjectURL(blob);
$('div').html(blobVal);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div></div>
&#13;
这一个sa http%3A//fiddle.jshell.net
http://jsfiddle.net/thsn3ayp/