javascript - js getContext 停止执行进一步的代码

标签 javascript html

我的 JavaScript 代码中有一个有效的 getContext,但由于某种原因,此方法之后没有执行任何操作。在这里,我添加了两个警报,但只运行其中一个:

<!DOCTYPE html>
<html>
    <body>

    <canvas id="myCanvas"
    width="0"
    height="0"
    style="border:5px solid #888888; fill: solid #DDDDDD;"
        Your browser does not support the HTML5 canvas tag.
    </canvas>

    <script>
        // basic vars
        var squareDim = 25;
        var screenWidth = 10;
        var screenHeight = 20;
        // setting up the canvas
        var canvas = document.getElementById("myCanvas");
        canvas.width = screenWidth * squareDim;
        canvas.height = screenHeight * squareDim;
        alert(1)
        var ctx = c.getContext("2d");
        alert(2);

        // draw a single square
        function putSquare(color, x, y) {
            ctx.fillStyle = color;
            ctx.fillRect(x * squareDim, y * squareDim, squareDim, squareDim);
        }

        for (i=0; i<screenHeight; i++) {
            putSquare("#FF0000", i, 0);
        }

    </script>

</body>

有人知道我哪里搞砸了吗?

最佳答案

您正在调用 c.getContext(...),您没有声明 c 变量 - 您需要在 canvas 上调用它> 相反:

var ctx = canvas.getContext('2d');
<小时/>

将来您可以在浏览器的 JavaScript 控制台中调试此类内容。在 JavaScript 控制台中,您将看到此处的代码抛出以下错误:

Uncaught ReferenceError: c is not defined

参见:How to open the JavaScript console in different browsers?

关于javascript - js getContext 停止执行进一步的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30164690/

相关文章:

javascript - 在输入内部键入内容时忽略按键

javascript - 如何限制网站js文件的下载?

html - 如何为每列中的 2 列创建响应式布局我想要另外 2 列?

html - 如何使输入字段在标签中间排成一行?

javascript - AngularJS 根据 id 显示值

javascript - Typeahead.js 不返回任何内容

java - Swing 对话框 html 格式 'cutting off' 一半内容

javascript - 调整 div 元素的大小?

javascript - 使用 JavaScript 和 HTML 显示 API 结果

javascript - 通知 AngularJS Controller 有关来自外部的事件