1

我正在尝试实现 excanvas 以确保画布标签在 IE8 以及我们在这里使用的所有其他浏览器中工作。我在让 getContext 在 IE8 中工作时遇到问题。我已经了解了在 DOM 中动态创建画布对象时需要使用 G_vmlCanvasManager.initElement 例程,但是我什至无法让静态创建的对象在 IE8 中工作。我可以告诉画布是正确创建的,因为出现了边框。所有其他浏览器都没有问题。这是代码:

<div align="right">
<canvas id="myCanvas" width="200" height="100" style="border:1px solid #c3c3c3;">
Your browser does not support the canvas element.
</canvas>

<script type="text/javascript">

var c=document.getElementById("myCanvas");
if (typeof window.G_vmlCanvasManager!="undefined") { 
    c=window.G_vmlCanvasManager.initElement(c);
    var cxt=c.getContext("2d");
   }else 
    var cxt=c.getContext("2d");

cxt.fillStyle="#FF0000";
cxt.fillRect(0,0,150,75);

</script>
</div>

谢谢你提供的所有帮助。

4

2 回答 2

2

window.onload 或 onLoad="drawSomething()" 应该可以工作,同样的事情

    <head>
    <!--[if lt IE 9]>
        <script type="text/javascript" src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
        <script type="text/javascript" src="/assets/site/excanvas.min.js"></script>
    <![endif]-->
    </head>

    <figure id="logo" class="body">
        <canvas id="logo-canvas" width="490" height="135"></canvas>
        <script src="canvas.js" type="text/javascript"></script>
        <script type="text/javascript">
        window.onload = function() {
            var c=document.getElementById("logo-canvas");
            var cxt=c.getContext("2d");
            drawLogo( cxt );
        }
        </script>
    </figure><!-- /#logo -->';
于 2011-08-16T07:13:04.320 回答
1

找到了解决方法。将代码放入带有 onload 触发器的标题中,现在可以正常工作

于 2011-06-16T16:28:37.880 回答