在 Safari 中显示下方错误。
Failed to execute 'createObjectURL' on 'URL': No function was found that matched the signature provided.
我的代码是:
function createObjectURL(object) {
return (window.URL) ? window.URL.createObjectURL(object) : window.webkitURL.createObjectURL(object);
}
这是我的图片代码:
function myUploadOnChangeFunction() {
if (this.files.length) {
for (var i in this.files) {
if (this.files.hasOwnProperty(i)) {
var src = createObjectURL(this.files[i]);
var image = new Image();
image.src = src;
imagSRC = src;
$('#img').attr('src', src);
}
}
}
}
最佳答案
当我将原始数据传递给 createObjectURL
时,我遇到了同样的错误:
window.URL.createObjectURL(data)
它必须是 Blob
, File
或 MediaSource
对象,而不是数据本身。这对我有用:
var binaryData = [];
binaryData.push(data);
window.URL.createObjectURL(new Blob(binaryData, {type: "application/zip"}))
另请查看 MDN 以获取更多信息:https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL
更新
过去我们还可以使用 createObjectURL()
方法与 MediaStream 对象。此用途已被规范和浏览器删除。
如果您需要将 MediaStream 设置为 HTMLMediaElement 的源,只需附加 MediaStream
直接反对 srcObject
HTMLMediaElement 的属性,例如<video>
元素。
const mediaStream = new MediaStream();
const video = document.getElementById('video-player');
video.srcObject = mediaStream;
但是,如果您需要使用 MediaSource
, Blob
或 File
, 你仍然需要创建一个 blob://
带有 URL.createObjectURL()
的网址并将其分配给 HTMLMediaElement.src
.
在此处阅读更多详细信息:https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/srcObject
关于javascript - 无法在 'createObjectURL' : 上执行 'URL',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27120757/