Cannot read property 'length' of undefined"
你的时间小时超过两位数了
你可以检查下,你digit文件有没有,正不正确,如果正确就检查下你时间是否获取到了
我也遇到过同样问题了,你解决了吗
digit是数字矩阵,老师单独定义在另外一个js文件的,你也可以在本段js中自己定义
不能读取属性的长度定义
var WIDOW_WIDTH=1024;
var WIDTH_HEIGHT=768;
var RADIUS=8;
var MARGIN_LEFT=30;
var MARGIN_TOP=60;
const endTime=new Date(2018,4,26,17,39,56);
var curShowTimeSeconds=0;
window.onload=function(){
var canvas =document.getElementById("canvas");
var context =canvas.getContext("2d");
canvas.width=WIDOW_WIDTH;
canvas.height=WIDTH_HEIGHT;
curShowTimeSeconds=getCurrentShowTimeSeconds()
render(context)
}
function getCurrentShowTimeSeconds(){
var curTime=new Date();
var ret=endTime.getTime()-curTime.getTime();
ret=Math.round(ret/1000)
return ret>=0?ret:0;
}
function render(cxt){
var hours=parseInt(curShowTimeSeconds/3600);
var minutes=parseInt((curShowTimeSeconds=hours*3600)/60);
var seconds=curShowTimeSeconds%60;
renderDigit(MARGIN_LEFT,MARGIN_TOP,parseInt(hours/10),cxt);
renderDigit(MARGIN_LEFT+15*(RADIUS+1),MARGIN_TOP,parseInt(hours%10),cxt);
renderDigit(MARGIN_LEFT+30*(RADIUS+1),MARGIN_TOP,10,cxt);
renderDigit(MARGIN_LEFT+39*(RADIUS+1),MARGIN_TOP,parseInt(minutes/10),cxt);
renderDigit(MARGIN_LEFT+54*(RADIUS+1),MARGIN_TOP,parseInt(minutes%10),cxt);
renderDigit(MARGIN_LEFT+69*(RADIUS+1),MARGIN_TOP,10,cxt);
renderDigit(MARGIN_LEFT+78*(RADIUS+1),MARGIN_TOP,parseInt(seconds/10),cxt);
renderDigit(MARGIN_LEFT+93*(RADIUS+1),MARGIN_TOP,parseInt(seconds%10),cxt)
}
function renderDigit(x,y,num,cxt){
cxt.fillStyle="black";
for(var i=0;i<digit[num].length;i++)
for(var j=0;j<digit[num][i].length;j++)
if(digit[num][i][j]==1){
cxt.beginPath();
cxt.arc(x+j*2*(RADIUS+1)+(RADIUS+1),y+i*2*(RADIUS+1)+(RADIUS+1),RADIUS,0,2*Math.PI);
cxt.closePath();
cxt.fill()
}
}[Web浏览器] "Uncaught TypeError: Cannot read property 'length' of undefined" /canvas/js/countdown.js (49)