Canvas 画布元素似乎已禁用
我使用了一个canvas元素来显示带有补丁的地图,这些补丁根据从MySQL查询获得的值着色,并写入javascript数组。它在我的两台电脑上运行良好,分别是Firefox4、IE9和Safari。但当我在学校做演示时,IE8(可能会有问题)和Firefox 3.6(应该可以工作)的画布都不可见。我看不出它有什么办法可以被禁用!学校的IT人员做了什么,我如何测试它并绘制一个常规的图像地图呢?IE8不支持画布。您可以使用来模拟它 第二,IIRC,浏览器没有义务将画布宽度和高度设置为任何值。您可以尝试设置Canvas 画布元素似乎已禁用,canvas,element,Canvas,Element,我使用了一个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;'
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页是带有彩色补丁的地图,可单击。我希望颜色反映从数据库中获取的值。哇。很好的建议。我想这可能会解决它,但我不能测试它,直到我进入校园,在那里的电脑。我花了一段时间才把所有的事情理顺,但这可能会解决问题。