Internet Explorer 11 fillStyle模式安全错误

Internet Explorer 11 fillStyle with pattern security error

本文关键字:安全 错误 模式 fillStyle Explorer Internet      更新时间:2023-09-26

我得到了这个脚本,在Chrome, Safari和Firefox windows/mac中工作,但在IE 11中出现安全错误而失败。

http://jsfiddle.net/YkVgA/1/

任何想法如何获得图像数据从画布后,我填了一个纹理从另一个域?

该图像已启用交叉原点。

<body><canvas id="mycanvas"></canvas>

var ctx = document.getElementById('mycanvas').getContext('2d');
var img = new Image();
img.crossOrigin = 'anonymous';
img.src = 'http://www.gravatar.com/avatar/205e460b479e2e5b48aec07710c08d50';
img.onload = function () {
    var ptrn = ctx.createPattern(img, 'repeat');
    ctx.fillStyle = ptrn;
    ctx.fillRect(0, 0, 150, 150);
    var inData = ctx.getImageData(0, 0, 150, 150)
}

正如fzzle在评论中指出的那样,IE(目前)不支持跨域请求图像

可能的解决方案

在这个客户端不能请求CORS使用的特殊情况下,选项是有限的,所以你必须:

  • 创建与页面
  • 相同来源的图像副本
  • 在服务器上使用代理页面请求图像,然后将其提供给相同来源的客户端