Javascript 来自图像的Chromium createObjectUrl显示为net::ERR_FILE_NOT_FOUND

Javascript 来自图像的Chromium createObjectUrl显示为net::ERR_FILE_NOT_FOUND,javascript,chromium,Javascript,Chromium,我知道我的代码是有效的,因为我一直在firefox中使用它。当我切换到chrome时,由于chrome无法读取由url.createObjectURL()生成的url,此代码段已停止工作 url本身已生成,但chromium无法将其加载到“我的图像”标记中。 一些人建议使用webkitURLapi而不是URL,但这也不起作用。你知道原因吗?这在其他浏览器中也是一个问题吗?在撤销其URL之前,您需要等待图像已加载 图像资源在我们设置其src后开始加载到微任务中(在我们设置src后允许设置cros

我知道我的代码是有效的,因为我一直在firefox中使用它。当我切换到chrome时,由于chrome无法读取由
url.createObjectURL()
生成的url,此代码段已停止工作

url本身已生成,但chromium无法将其加载到“我的图像”标记中。


一些人建议使用
webkitURL
api而不是
URL
,但这也不起作用。你知道原因吗?这在其他浏览器中也是一个问题吗?

在撤销其URL之前,您需要等待图像已加载

图像资源在我们设置其
src
后开始加载到微任务中(在我们设置
src
后允许设置
crossOrigin
属性的其他原因中),因此当浏览器读取
src
更改时,行
URL.revokeObjectURL(URL)
将已经被调用,而blob://URL已经指向任何地方

那就这么简单吧

    const img = $(this).siblings('img')
    const url = URL.createObjectURL(event.target.files[0]) // url to user's image
    img.attr('src', url)
    img.one('load', (e) => { URL.revokeObjectURL(url); });
    const img = $(this).siblings('img')
    const url = URL.createObjectURL(event.target.files[0]) // url to user's image
    img.attr('src', url)
    img.one('load', (e) => { URL.revokeObjectURL(url); });