Uncaught SecurityError: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported. 这是我的报错。 这是跨域问题吗。可我是本地文件的图片啊!
5 回答
有可能,我按照老师的做法,成功了。
在你运行代码的时候,需要一个web服务,看老师的浏览器地址栏(localhost:8080),而不能直接在本地用浏览器打开页面。(如果你了解Node,那么你可以安装http-server来轻松实现。)
以下是我的代码:
var src = '5k.jpg'
var set = function(key){
var img = document.createElement("img");
img.addEventListener("load",function(){
var imgCanvas = document.createElement("canvas"),
imgContext = imgCanvas.getContext("2d");
imgCanvas.width = this.width;
imgCanvas.height = this.height;
//渲染
imgContext.drawImage(this,0,0,this.width,this.height);
var imgAsDataUrl = imgCanvas.toDataURL("image/png");
//保存到本地
try{
localStorage.setItem(key,imgAsDataUrl);
}catch(e){
console.log("storage failed : " + e);
}
},false);
img.src = src;
}
var get = function(key){
var srcStr = localStorage.getItem(key);
var imgObj = document.createElement("img");
imgObj.src = srcStr;
document.body.appendChild(imgObj);
}
举报
0/150
提交
取消