尝试在Meteor中定义canvas元素的上下文时,出现以下错误: Uncaught TypeError: Cannot read property 'getContext' of undefined
如果我将javascript代码手动粘贴到Chrome的控制台中,它将按预期执行,没有错误。这告诉我JS代码在页面加载时未正确执行(它是在设置canvas元素之前执行的吗?)。我怎样才能解决这个问题?谢谢!
client/views/test/test.html
<template name="test">
<div class="container">
<canvas id="canvas1">Your browser does not support HTML5 Canvas. Please update your browser to the latest version.</canvas>
</div>
</template>
客户端JS: client/views/test/test.js
$(window).load(function() {
var canvas = $("#canvas1");
canvas.css('width', $(window).innerWidth());
canvas.css('height', $(window).innerHeight());
var context = canvas[0].getContext('2d');
// draw the canvas
});
问题在于您正在尝试canvas
在呈现之前进行访问。
使固定:
Template.test.rendered = function(){
var canvas = $("#canvas1");
canvas.css('width', $(window).innerWidth());
canvas.css('height', $(window).innerHeight());
var context = canvas[0].getContext('2d');
// draw the canvas
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句