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

Internet explorer 在IE中将svg图像绘制到画布时对方法或属性访问的意外调用,internet-explorer,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); } 它在chrome上运

我尝试在画布上绘制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);
}
它在chrome上运行良好,但在IE(截至本文撰写之时的v11)中,它会间歇性地发出
对方法或属性访问的意外调用
错误

我有一个样本。请注意,您可能需要运行小提琴几次,但最终会遇到错误


问题是什么?我如何解决它?

我们遇到了类似的问题。最后,使用setTimeout()将drawImage从线程中踢出会有所帮助。问题是,我没有答案,最符合逻辑的似乎是,有时当加载事件触发时,img并没有真正准备好。想想看。

是的,这也是我避免错误的解决方案。这显然是IE中的一个bug。IE中的一个bug,但被IE团队忽略。请参阅。IE11支持已停止,请参阅您有如何完成此任务的代码段吗?如果您可以共享如何解决此问题的代码段,那将非常有用。是否在绘图循环中运行了drawImage()?或者别的什么地方。