Javascript canvas.getContext(“2d”)不起作用

Javascript canvas.getContext(“2d”)不起作用,javascript,firefox,canvas,Javascript,Firefox,Canvas,这是我的代码: <!DOCTYPE html> <html> <head> <link href="style.css" rel="stylesheet" type="text/css" /> <script type="text/javascript"> (function drawCanvas(){ var canv = document

这是我的代码:

<!DOCTYPE html>
<html>
    <head>
        <link href="style.css" rel="stylesheet" type="text/css" />
        <script type="text/javascript">
            (function drawCanvas(){
                var canv = document.getElementById('testcanvas1');

                if(canv.getContext){
                    alert("test");
                    var context = doof.getContext('2d');

                    context.fillStyle = "rgb(255, 0, 255)";
                    context.fillRect(0, 0, canvas.width, canvas.height);
                }
            })();
        </script>
    </head>
    <body>
        <canvas id="testcanvas1"></canvas>
    </body>
</html>

没有警报,因此我假设变量canv.getContext为false。为什么?一般来说,getContext'2d'不适用于我的Firefox34。如何使此功能正常工作?

您正在加载文档之前执行代码。解决方案:

window.onload = function() {
    (function drawCanvas(){
        var canv = document.getElementById('testcanvas1');

        if(canv.getContext){
            alert("test");
            var context = doof.getContext('2d');

            context.fillStyle = "rgb(255, 0, 255)";
            context.fillRect(0, 0, canvas.width, canvas.height);
        }
    })();
}
canv为空,因为testcanvas1尚未加载。因此,canv.getContext抛出一个错误。