在IE中将svg图像绘制到画布上时意外调用方法或属性访问

mor*_*eus 10 internet-explorer

我试图在这样的画布上绘制一个svg图像:

var canvas = document.createElement("canvas");
canvas.width=w;
canvas.height=h;
var ctx = canvas.getContext("2d");
var img = new Image();
img.src = src;
img.onload = function(e)
{
    ctx.drawImage(img, 0, 0, w, h);
}
Run Code Online (Sandbox Code Playgroud)

它在chrome上工作正常,但在IE(撰写本文时的第11版)中,它会Unexpected call to method or property access间歇性地出错.

在此输入图像描述

在这里有一个示例jsfiddle .请注意,您可能需要多次运行小提琴,但最终会遇到错误.

有什么问题,我该如何解决?

小智 6

我们遇到了同样的问题.最后,用setTimeout()帮助将kickImage踢出线程.问题是什么,我没有答案,最合乎逻辑的似乎是,当加载事件触发时,有时img并没有真正准备好.去搞清楚.