Erro de exibição abaixo no Safari.
Falha ao executar 'createObjectURL' no 'URL': Nenhuma função foi encontrada que corresponda à assinatura fornecida.
Meu código é:
function createObjectURL(object) {
return (window.URL) ? window.URL.createObjectURL(object) : window.webkitURL.createObjectURL(object);
}
Este é o meu código de imagem:
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);
}
}
}
}
javascript
createobject
Hardik Mandankaa
fonte
fonte
createObjectURL(...)
função quando recebe esse erro?window.URL.createObjectURL('broken')
lança um erro:Uncaught TypeError: Failed to execute 'createObjectURL' on 'URL': No function was found that matched the signature provided.
Respostas:
ATUALIZAR
Considere evitar o
createObjectURL()
método, enquanto os navegadores estão desativando o suporte a ele. Basta anexar oMediaStream
objeto diretamente àsrcObject
propriedade do elementoHTMLMediaElement
eg<video>
.No entanto, se você precisar trabalhar com
MediaSource
,Blob
ouFile
, precisará criar um URLURL.createObjectURL()
e atribuí-lo aHTMLMediaElement.src
.Leia mais detalhes aqui: https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/srcObject
Resposta mais antiga
Eu experimentei o mesmo erro quando passei para
createObjectURL
dados brutos:Tem que ser
Blob
,File
ouMediaSource
objeto, não os dados em si. Isso funcionou para mim:Verifique também o MDN para obter mais informações: https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL
fonte
URL.createObjectURL()
para fluxos de mídia. No entanto, ele não declara NÃO usá-lo para uma entrada de arquivo, como indicado na pergunta inicial.Este erro foi causado porque a função
createObjectURL
foi descontinuada para o Google ChromeEu mudei isso:
para isso:
Isso funcionou para mim.
fonte
Meu código foi quebrado porque eu estava usando uma técnica obsoleta. Costumava ser isso:
Então substituí isso por:
Isso funcionou lindamente.
EDIT: recentemente
localMediaStream
foi preterido e substituído porMediaStream
. O código mais recente é assim:Referências:
fonte
Eu tive o mesmo erro para o MediaStream. A solução é configurada como um fluxo para o srcObject.
Dos documentos :
fonte
Vídeo com retorno:
De: https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/srcObject
fonte
O problema é que as chaves fornecidas no loop não se referem ao índice do arquivo.
A saída do código acima é:
Mas o que era esperado era:
O erro ocorre quando o navegador tenta executar, por exemplo:
Sugiro a implementação com base no seguinte código:
Espero que isso possa ajudar alguém.
Saudações!
fonte
Se você estiver usando ajax, é possível adicionar as opções
xhrFields: { responseType: 'blob' }
:fonte
Corrigi-o baixando a versão mais recente do GgitHub GitHub url
fonte