为什么我的IE9不支持画布?

问题描述

| diveIntoHTML5 Canvas声称IE9支持画布。 但是,当我尝试在IE9上做画布时,它不起作用:   对象不支持属性方法“ getContext” 我正在使用IE9.0.8112.16421: 这是代码
<html>
<head>

</head>
<body style=\"background:black;margin:0;padding:0;\">
<canvas id=\"canvas\" style=\"background:white;width:100%;height:100%;\">noob</canvas>
<script>
var img=new Image();
img.onload=function(){
  var c=document.getElementById(\'canvas\');
  var ctx = c.getContext(\'2d\');
  var left,top;
  left=top=0;
  ctx.drawImage(img,left,top,20,20);
  var f=function(){
    left+=1;
    top+=1;
    c.width=c.width;
    ctx.drawImage(img,20);
  };
  setInterval(f,20);
};
img.src=\"http://a.wearehugh.com/dih5/aoc-h.png\";
</script>
</body>
</html>
    

解决方法

        两件事情:
<canvas>
标签应具有相应的结束标签
</canvas>
。尽管有些浏览器只允许您使用一个开始标签,但其他浏览器(例如Firefox和IE)则不会。 另外,IE9要求您声明HTML5文档类型以使用canvas标记。您可以通过在代码的顶部放置ѭ3来实现此目的。     ,        如果IE9在兼容模式下运行,则即使您使用的是HTML5 DOCTYPE标签,canvas标签也不会被识别。至少那是我的经验。 检查IE9是否以兼容模式运行,如果站点位于Intranet上,则可能是这种情况。     ,        
<!DOCTYPE html>
必须是页面上的第一件事。标签前有一个脚本,它一直给我同样的错误。这仅在IE9,Chrome和Firefox使用doctype标记之前的脚本的情况下才会发生。     ,        运行IE 9.0.8112.16421。画布元素最初不会起作用,但是如果我按F12键调出devtools,然后刷新,它将开始起作用。没有打开devtools窗口的常规刷新将不起作用。可能是一个JS init问题,因为在我将画布绘制代码移入其自己的.js文件之前,画布已经在工作。在Chrome / Firefox / Safari中工作正常。     ,        在兼容性视图中使用IE10时,请检查IE兼容性版本。输入F12(打开开发人员工具)并检查您需要测试和浏览器的适当IE(例如IE9)版本 将在此版本下正常工作。     ,        伙计们! 在Google Code上查看Explorer Canvas: https://code.google.com/p/explorercanvas/ 希望这可以帮助! 子