在Safari中显示下面错误。

对'URL'执行'createObjectURL'失败:没有找到与提供的签名匹配的函数。

我的代码是:

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); 
            }
       }           
   } 
} 

当前回答

我下载了最新的版本 GitHub

其他回答

我可以通过检查对象是否为空来修复这个问题。 {对象?URL.createObjectURL(对象):"default.png"}

这使我得出结论,错误发生时,对象为空。

如果你正在使用angular,本教程将会很有帮助:link。但是你需要替换这一行:

this.video.src = window.URL.createObjectURL(stream);

因为createObjectURL()在MediaStream的chrome上已弃用。

this.video.srcObject = stream;

视频与回落:

try {
  video.srcObject = mediaSource;
} catch (error) {
  video.src = URL.createObjectURL(mediaSource);
}
video.play();

来自: https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/srcObject

我下载了最新的版本 GitHub

如果你正在使用ajax,可以添加选项xhrFields: {responseType: 'blob'}:

$.ajax({
  url: 'yourURL',
  type: 'POST',
  data: yourData,
  xhrFields: { responseType: 'blob' },
  success: function (data, textStatus, jqXHR) {
    let src = window.URL.createObjectURL(data);
  }
});