2011-06-03 71 views
0

我已经使用了画布元件,以显示与被根据来自MySQL查询获得并写入到一个javascript数组值色斑的地图。它适用于我的两台电脑,Firefox 4,IE 9和Safari。但是当我在学校做了一个演示,同时使用IE 8(也许这将是一个问题)和Firefox 3.6(应该工作),画布不可见。我看不出任何方式,甚至可以禁用!学校里的IT人员做了什么,我该如何测试它,然后绘制一张正常的图像地图?画布元件似乎被禁用

回答

1

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

其次,IIRC,浏览器不一定要画布宽度和高度设置为任何值。您可以尝试设置widthheight属性。

UPD:这将是很好,如果你提供你的页面的片段。在做这件事之前,请先了解如何缩小问题的一些想法。

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

  • 确保所不支持没有关于canvas消息(把<canvas></canvas>之间即文本)显示(它不应该与Firefox 3.6会发生,但仍然)。

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

  • canvasdiv元件,并确保它在预期的位置上显示(例如,通过设置style='border:solid;'用于它)。

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

UPD:我跑本站启用Firebug,它在drawImage来电显示异常。

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

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

的原因是(我猜的),当你设置src图像的地址,它没有立即加载,并绘制它不可能在那之前。所以就会抛出异常,其余的编码不会被执行。

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

让我知道它是否有帮助。

+0

感谢您的回复。我对IE不感兴趣 - 我的用户使用Firefox,并且画布在那里也不工作。我在创建元素的html中设置宽度和高度(不是在javascript中)。 – 2011-06-03 07:00:13

+0

谢谢elder_george。我把文本放在画布里面,它不显示。我从学院的IT安全部门得到了答复,他说他们没有做任何事情来禁用HTML 5的东西。该网站是: – 2011-06-04 04:54:22

+0

网站链接未显示。请再试一次。 – 2011-06-04 07:00:31