Image excanvas&x2B;Dojo:getContext未定义

Image excanvas&x2B;Dojo:getContext未定义,image,dojo,internet-explorer-7,excanvas,Image,Dojo,Internet Explorer 7,Excanvas,当我在IE7/WinXP32中执行下面的代码时,控制台中的输出是“未定义的”。当我进行两次修改时,输出将更改为预期的“getContext()”: 我移除图像标签 我使用: 知道这是怎么回事吗?解决办法是什么 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head>

当我在IE7/WinXP32中执行下面的代码时,控制台中的输出是“未定义的”。当我进行两次修改时,输出将更改为预期的“getContext()”:

  • 我移除图像标签
  • 我使用:
知道这是怎么回事吗?解决办法是什么

<!DOCTYPE HTML PUBLIC 
  "-//W3C//DTD HTML 4.01 Transitional//EN"
  "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>
  <title>Canvas</title>        
  <script type="text/javascript">
    var djConfig = {parseOnLoad: false, isDebug: true};
  </script>
  <script type="text/javascript" 
    src="/development/javascript/dojo-release-1.4.3-src/dojo/dojo.js">
  </script>
  <!--[if IE]>
    <script type="text/javascript" src="/javascript/excanvas_r73.js"></script>
  <![endif]-->
  <script type="text/javascript">
    function draw() {
        var canvas = dojo.byId("canvas");
        console.log(canvas.getContext);
    }

    dojo.addOnLoad(draw);
  </script>
</head>

<body>
  <canvas id="canvas" width="100" height="100"></canvas>
  <img src="nonexisting.gif">
</body>

</html>

dojo.addOnLoad在document.onload之前激发。我认为这与DOMContentLoaded有关。也许excanvas对同一事件进行初始化?您能用document.onload吗?

谢谢您指出这一点!浏览器画布的初始化触发“onreadystatechange”。
function init() {
    dojo.addOnLoad(draw);
}

if (dojo.isIE) {
    dojo.connect('onload', init);
} else {
    init();
}