2013-06-04 53 views
3

对于使用Canvas和drawImage的最新chrome(Windows 7上的v27),我有一个奇怪的错误。该错误只发生在Chrome浏览器上,一切都按预期在Firefox和IE上运行。在Chrome上Canvas drawImage类型错误

我创建了一个失败的减少测试用例的位置:http://jsfiddle.net/qU3s5/

HTML

<canvas id="canvas"></canvas> 

的JavaScript

var canvas = document.getElementById("canvas"); 

var ctx = canvas.getContext("2d"); 

var img = new Image(); 
img.onload = function() { 
    ctx.drawImage(this, 0, 0); 
} 
img.src = "http://octodex.github.com/images/foundingfather_v2.png"; 

这给我Uncaught TypeError: Type error在哪里drawImage被称为线。

+0

说的jsfiddle为我工作...尝试更改ID名称的东西更独特的 – dchhetri

+0

我不知道这是否可以通过'about:flag'中的实验性Chrome功能触发......这对Windows 7来说肯定不适用我+1 –

回答

12

显然Chrome在使用new Image()时会抛出错误。你必须使用它代替:

var img = document.createElement('img'); 

更新小提琴:http://jsfiddle.net/aM8aA/

下面是相关的Chromium项目的bug报告:https://code.google.com/p/chromium/issues/detail?id=238071

+0

+1哇:好信息......但非常令人不安!关于画布,最新的Chrome版本似乎经常出现问题。 – markE

+1

铬可能不会有更多的小故障,但更多的人使用它,以便发现更多的小故障。 –