因为在项目中用到了背景图片的高斯模糊,而这张图片的链接地址是跨域的,不能直接设置img.src,会有两个警告框出现,到网上爬了查了一大堆资料后,找到了一个预处理图片缓存的代码,如下:
function cacheExternalImage(url){
var img = new Image,
src = url,
cvs = document.createElement('canvas'),
ctx = cvs.getContext('2d');
img.crossOrigin = "Anonymous";
img.onload = function() {
//ctx.drawImage( img, 0, 0 );
}
img.src = src;
if ( img.complete || img.complete === undefined ) {
img.src = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==";
img.src = src;
}
return img;
}
这样返回的img对象即使用的本地src,问题也解决了。
但是现在问题来了,打破沙锅问到底的精神,请问这段代码实现跨域本地缓存的原理是什么?求详解~~~
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
光阴似箭催人老,日月如移越少年。