【发布时间】:2012-07-20 13:01:06
【问题描述】:
出于所有意图和目的,假设我有一个带有输入字段的网页,用户可以在其中输入图像 URL,单击按钮,并在其 URL 的另一端获得资源的数据 URI(例如,谷歌徽标)。
阅读后,我了解到您可以像这样获取图像的数据 URI:
function imageToDataURI(src,callback)
{
var canvas = document.createElement('canvas'),
img = document.createElement('img');
img.onload =
function()
{
canvas.width = img.width;
canvas.height = img.height;
canvas.getContext('2d').drawImage(img, 0, 0);
callback(canvas.toDataURL());
};
img.src = src;
}
但是,很多人(包括我自己)都收到“SECURITY_ERR: DOM Exception 18”,因为在画布元素上绘制跨域图像时会受到污染,并且受污染的画布会在 canvas.toDataURL() 上返回上述错误(见Why does canvas.toDataURL() throw a security exception?)。我的问题是:我真的需要支持跨域网址!
我能做什么?
【问题讨论】:
标签: javascript node.js canvas cross-domain data-uri