#javascript #null #html5-canvas #typeerror #jspsych
Вопрос:
Я пытаюсь реализовать тег HTML canvas в коде Visual Studio, но он не работает.
Вот мой код:
lt;!DOCTYPE htmlgt; lt;htmlgt; lt;headgt; lt;titlegt;Testlt;/titlegt; lt;script src="jspsych-6.3.1jspsych.js"gt;lt;/scriptgt; lt;script src="jspsych-6.3.1pluginsjspsych-html-button-response.js"gt;lt;/scriptgt; lt;link href="jspsych-6.3.1cssjspsych.css" rel="stylesheet" type="text/css"/gt; lt;/headgt; lt;bodygt; lt;canvas id="myCanvas" width="200" height="100"gt;lt;/canvasgt; lt;scriptgt; 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 }); lt;/scriptgt; lt;/bodygt; lt;/htmlgt;
Когда я пытаюсь запустить код, я получаю следующее сообщение в консоли отладчика: «Ошибка типа не обнаружена: Не удается прочитать свойства null (чтение «getContext»)».
Я знаю, что другие люди на этом веб-сайте сталкивались с той же проблемой, но, просмотрев некоторые из их тем, кажется, что их проблема заключалась в том, что они не добавили элемент canvas в свой DOM, т. Е. Они не поместили элемент в теги тела. Однако мой элемент canvas находится в тегах тела, поэтому я не уверен, почему мой компьютер не распознает его.
Кто-нибудь сталкивался с этой проблемой раньше? Если да, не могли бы вы поделиться своими мыслями о ее решении?
Изменить: Проблема, по-видимому, связана с тем фактом, что элемент canvas вызывается внутри функции jsPsych. Когда я реализую код с помощью обычного JavaScript, он работает нормально.
Комментарии:
1. Для меня все в порядке. Попробуйте изменить идентификатор в HTML на нижний регистр
mycanvas
, поэтому в JS. Проблема в том, что вашcanvas
getElementById
метод не найден.2. @Леонид, к сожалению, это не работает 🙁
3. У нас нет внешних сценариев, так чем мы можем помочь? Возможно, у них нет доступа к DOM или окну как к глобальному объекту, мы не знаем. Где именно играет метод стимула и в каком контексте?
4. @Leonid Я поднял эту проблему на форуме, специализированном для jsPsych (библиотека JavaScript, которую я использовал), и оказалось, что сценарий, который я использовал, не способствовал запуску элементов canvas. Спасибо вам за вашу помощь!