canvas元素似乎被禁用了

时间:2011-06-03 06:04:31

标签: canvas element

我使用了一个canvas元素来显示一个贴图,这些贴片根据从MySQL查询获得的值着色并写入javascript数组。它可以在我的两台计算机上运行,​​包括Firefox 4,IE 9和Safari。但是当我在学校做一个演示时,IE 8(可能会有问题)和Firefox 3.6(应该可以工作),画布不可见。我看不出它甚至可以被禁用!学校的IT人员做了什么,我该如何测试它并绘制一个常规的图像映射呢?

1 个答案:

答案 0 :(得分:1)

IE8不支持画布。您可以使用excanvas来模拟它。

其次,IIRC,浏览器没有义务将画布宽度和高度设置为任何值。您可以尝试设置widthheight属性。

UPD:如果您提供页面的片段,那就太好了。在你这样做之前,有一些关于如何缩小问题的想法。

  • 确保您的网页文档类型设置为<!doctype html>

  • 确保不显示任何关于canvas不受支持的消息(即<canvas></canvas>之间的文字)(Firefox 3.6不应该发生,但不过)。

  • 为canvas元素设置style='border:solid;'。检查边框是否在预期位置绘制。

  • canvas包含在div元素中并确保它显示在预期位置(例如,同时为其设置style='border:solid;')。

如果显示画布和/或包装元素的边框但没有绘图,则绘图代码会出现一些错误。如果不是那么元素定位存在问题(例如CSS疯狂)或加载文档本身。

UPD:我在启用了Firebug的情况下运行了网站,并在drawImage调用时显示异常。

img.src = 'images/snap9.jpg';
ctx.drawImage(img,0,0);  // HERE!

但仅适用于浏览器会话中第一次加载页面。

原因是(我猜)当你将src设置为图像地址时,它不会立即加载,并且在此之前无法绘制它。因此抛出了exeption,并且没有执行其余的编码。

您应该为图像设置onload处理程序(请参阅here)并在此处理程序中完成剩余的绘图操作。

如果有帮助,请告诉我。