我正在尝试在 Visual Studio Code 中实现 HTML 画布标记,但它不起作用。
这是我的代码:
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<script src="jspsych-6.3.1\jspsych.js"></script>
<script src="jspsych-6.3.1\plugins\jspsych-html-button-response.js"></script>
<link href="jspsych-6.3.1\css\jspsych.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<canvas id="myCanvas" width="200" height="100"></canvas>
<script>
var finalTimeline = [];
var example = {
type: 'html-button-response',
stimulus: function() {
var c = document.getElementById("myCanvas");
var ctx= c.getContext("2d");
ctx.beginPath();
ctx.arc(95, 50, 40, 0, 2 * Math.PI);
ctx.stroke();
}
};
finalTimeline.push(example);
jsPsych.init({
timeline: finalTimeline
});
</script>
</body>
</html>
当我尝试运行代码时,我在调试器控制台中收到以下消息:“未捕获的 TypeError:无法读取 null 的属性(正在读取 'getContext')。”
我知道这个网站上的其他人也遇到了同样的问题,但是在查看了他们的一些线程后,似乎他们的问题是他们没有将 canvas 元素添加到他们的 DOM 中,即他们没有将元素放在里面身体标签。但是,我的画布元素在正文标签内,所以我不确定为什么我的计算机无法识别它。
有没有人遇到过这个问题?如果是这样,请您分享您对解决它的想法吗?
编辑:问题似乎与在 jsPsych 函数中调用 canvas 元素这一事实有关。当我使用常规 JavaScript 实现代码时,它工作正常。