Canvas 画布元素似乎已禁用

Canvas 画布元素似乎已禁用,canvas,element,Canvas,Element,我使用了一个canvas元素来显示带有补丁的地图,这些补丁根据从MySQL查询获得的值着色,并写入javascript数组。它在我的两台电脑上运行良好,分别是Firefox4、IE9和Safari。但当我在学校做演示时,IE8(可能会有问题)和Firefox 3.6(应该可以工作)的画布都不可见。我看不出它有什么办法可以被禁用!学校的IT人员做了什么,我如何测试它并绘制一个常规的图像地图呢?IE8不支持画布。您可以使用来模拟它 第二,IIRC,浏览器没有义务将画布宽度和高度设置为任何值。您可以尝

我使用了一个canvas元素来显示带有补丁的地图,这些补丁根据从MySQL查询获得的值着色,并写入javascript数组。它在我的两台电脑上运行良好,分别是Firefox4、IE9和Safari。但当我在学校做演示时,IE8(可能会有问题)和Firefox 3.6(应该可以工作)的画布都不可见。我看不出它有什么办法可以被禁用!学校的IT人员做了什么,我如何测试它并绘制一个常规的图像地图呢?

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

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

UPD:如果你能提供你页面的一个片段就好了。在此之前,请先谈谈如何缩小问题的范围

  • 确保页面doctype设置为

  • 确保不会显示任何关于
    画布
    不受支持的消息(即放置在
    之间的文本)(Firefox 3.6不应出现这种情况,但无论如何)

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

  • canvas
    括在
    div
    元素中,并确保它显示在预期位置(例如,为它设置
    style='border:solid;'

如果显示了画布和/或包装元素的边框,但没有图形,则图形代码有一些错误。如果不是,那么元素定位(例如CSS失控)或加载文档本身就有问题

UPD:我在启用Firebug的情况下运行了这个站点,它在
drawImage
调用中显示了一个异常

img.src = 'images/snap9.jpg';
ctx.drawImage(img,0,0);  // HERE!
但仅适用于浏览器会话中的第一次加载页面

原因是(我猜)当您将
src
设置为image address时,它不会立即加载,并且在此之前无法绘制。因此,会抛出exeption,其余的编码不会执行

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


如果有帮助,请告诉我。

谢谢您的回复。我对IE不感兴趣——我的用户使用Firefox,画布在那里也不起作用。我确实在创建元素的html中设置了宽度和高度(而不是javascript)。谢谢elder_george。我把文本放在画布里,它没有显示出来。我收到了学校IT安全部门的回复,他说他们不会做任何事情来禁用HTML5的东西。该网站是:相关页面正在报告中。中间3页是带有彩色补丁的地图,可单击。我希望颜色反映从数据库中获取的值。哇。很好的建议。我想这可能会解决它,但我不能测试它,直到我进入校园,在那里的电脑。我花了一段时间才把所有的事情理顺,但这可能会解决问题。