Javascript 添加交叉原点=";“匿名”;在加载图像之前,将其添加到所有img标记
我的画布抛出错误有问题,因为它试图加载此处描述的缓存图像: 为了解决这个问题,我想将Javascript 添加交叉原点=";“匿名”;在加载图像之前,将其添加到所有img标记,javascript,html5-canvas,cors,Javascript,Html5 Canvas,Cors,我的画布抛出错误有问题,因为它试图加载此处描述的缓存图像: 为了解决这个问题,我想将crossorigin=“anonymous”添加到我网站上的所有图像中,但是在加载图像之前,我如何才能做到这一点,以使它们加载正确的标题,而不会使我的画布崩溃 $('img')。每个(函数(){ var$img=$(本); $img.attr('crossorigin',匿名); } 您所采用的方法应该有效(在修复语法错误后),您必须在下一个微任务检查点之前处理crossOrigin属性的设置,这意味着您必
crossorigin=“anonymous”
添加到我网站上的所有图像中,但是在加载图像之前,我如何才能做到这一点,以使它们加载正确的标题,而不会使我的画布崩溃
$('img')。每个(函数(){
var$img=$(本);
$img.attr('crossorigin',匿名);
}
您所采用的方法应该有效(在修复语法错误后),您必须在下一个微任务检查点之前处理
crossOrigin
属性的设置,这意味着您必须同步执行,而不是在异步脚本或事件处理程序中
但是,浏览器并不总是遵循此规则,在某些情况下,缓存图像的加载可以同步完成。因此,为了避免在这种情况下掉落,您可以简单地将src
再次设置为相同的值,以强制浏览器使用正确的头加载资源
$('img')。每个(函数(){
var$img=$(本);
$img.attr({
交叉源:“匿名”,
src:this.src
});
});
//测试我们加载了正确的标题
$(窗口).on(“加载”,()=>{
const canvas=document.createElement(“canvas”);
canvas.getContext(“2d”).drawImage($('img')[0],0,0);
console.log('cross-origin enabled',!!canvas.toDataURL());
});
settingsrc
是否会重新加载映像,即使缓存的映像具有正确的标头?谢谢!如果已使用跨源属性集请求映像,则将使用缓存的版本