【发布时间】:2014-04-01 14:35:18
【问题描述】:
我的代码在我的本地主机上运行良好,但在站点上却无法运行。
我从控制台收到此错误,对于这一行 .getImageData(x,y,1,1).data:
Uncaught SecurityError: Failed to execute 'getImageData' on 'CanvasRenderingContext2D': The canvas has been tainted by cross-origin data.
我的部分代码:
jQuery.Event.prototype.rgb=function(){
var x = this.offsetX || (this.pageX - $(this.target).offset().left),y = this.offsetY || (this.pageY - $(this.target).offset().top);
if (this.target.nodeName!=="CANVAS")return null;
return this.target.getContext('2d').getImageData(x,y,1,1).data;
}
注意:我的图片 url (src) 来自子域 url
【问题讨论】:
-
即使 img.src 是本地相对 url:“img/foo.png”,我也会收到此错误 - 那么这个跨域是什么?
-
参见stackoverflow.com/a/16218015/5175433:“Chrome 不会认为不同的本地文件来自同一个域。”
标签: javascript html html5-canvas