1

ここで使用する他のすべてのブラウザーと同様に、キャンバス タグが IE8 で確実に機能するように、excanvas を実装しようとしています。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 に答える