以前、読んだJavaScriptクックブックでは、explorercanvasを使ってIEでcanvasタグを実装する方法について書かれていました。
ただ、問題があって、globalCompositeOperationをサポートしておらず、代替手段を取る必要が発生しました。
そこで、ぐぐってみたところ、FlashCanvasを発見したので、そちらを試しに使ってみることにしました。
コーディングは下のようになります。
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
<!--[if lt IE 9]>
<script src="FlashCanvasPro/bin/flashcanvas.js"></script>
<![endif]-->
</head>
<body>
<div id="container"></div>
<script>
jQuery(function($){
var canvas = document.createElement('canvas');
canvas.style.width = '200px';
canvas.style.height = '200px';
document.getElementById('container').appendChild(canvas);
if (typeof FlashCanvas != "undefined") {
FlashCanvas.initElement(canvas);
if (canvas.getContext){
var context = canvas.getContext('2d');
context.strokeStyle = 'rgb(255,0,0)';
context.fillStyle = 'rgb(255,0,0)';
context.fillRect(20,40,50,100);
}
}
});
</script>
</body>重要なのは、canvasタグを作るたびに、FlashCanvas.initElement()メソッドを実行する必要があるということ。canvasタグをサポートしていない、IE8でも表示することができました。IE7はどうなんだろう??
しかし、IE8だけだとしてもこれは、すごいなー。
0 コメント:
コメントを投稿