我正在尝试实现excanvas,以确保canvas标签在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>
感谢您提供任何帮助。
答案 0 :(得分:2)
window.onload或onLoad =“drawSomething()”应该有效,same thing
<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 -->';
答案 1 :(得分:1)
找到了解决方法。使用onload触发器将代码放入标题中,现在可以正常工作