javascript - 无法在 'createObjectURL' : 上执行 'URL'

标签 javascript createobject

在 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 , FileMediaSource对象,而不是数据本身。这对我有用:

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 , BlobFile , 你仍然需要创建一个 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/

相关文章:

javascript - 订阅放置在 Promise Angular 6 中的 http.post

iis-7 - "Server.CreateObject Failed"从 IIS 7 上的经典 ASP 创建 COM+ 组件

VBA创建对象

javascript - 检查数组是否与另一个数组匹配以返回不匹配的内容

javascript - 当用户单击按钮时动态添加行?

javascript - Angular 2 响应式(Reactive)表单与模板表单

qt - 如何将子项动态附加到具有子项别名的 QML 项

javascript - 循环和静态数字

c# - 绑定(bind)到使用 CreateObject 创建的已打开表单

c# - 调用 COM 类的非默认构造函数