Javascript Canvas window.addEvent在gh页面上运行时出错

Javascript Canvas window.addEvent在gh页面上运行时出错,javascript,html,canvas,github-pages,Javascript,Html,Canvas,Github Pages,我有一个HTML5画布项目,它允许将图像上传到画布。然后它被各种各样地画上 我可以在本地运行这个项目 $ http-server 在本地运行,我没有收到任何错误 项目正在进行中 问题是在gh页面中我得到了错误 Uncaught TypeError: window.addEvent is not a function at (index):22 第22行是 window.addEvent('load', function() { 在尝试使用snippet工具运行时,这也是一个问

我有一个HTML5画布项目,它允许将图像上传到画布。然后它被各种各样地画上

我可以在本地运行这个项目

$ http-server
在本地运行,我没有收到任何错误

项目正在进行中

问题是在gh页面中我得到了错误

Uncaught TypeError: window.addEvent is not a function
    at (index):22
第22行是

   window.addEvent('load', function() {
在尝试使用snippet工具运行时,这也是一个问题


var-Pts=[];
变异区;
让输入值;
var比率;
var角;
window.addEvent('load',function(){
var imageLoader=document.getElementById('imageLoader');
imageLoader.addEventListener('change',handleImage,false);
var c=document.getElementById('canvas');
var ctx=c.getContext('2d');
函数handleImage(e){
var reader=new FileReader();
reader.onload=函数(事件){
var img=新图像();
img.onload=函数(){
c、 宽度=img.width;
c、 高度=img.高度;
ctx.drawImage(img,0,0);
}
img.src=event.target.result;
}
reader.readAsDataURL(e.target.files[0]);
}
$(“#画布”)。单击(函数(e){
位置(e);
});
});
var pointSize=3;
//事件将是一个点击事件,可作为addEventListener(函数(事件){})中的第一个参数检索;或者在jQuery中使用$(“选择器”)。单击(函数(事件){});
函数getPosition(事件){
var rect=canvas.getBoundingClientRect();
var x=event.clientX-rect.left;//x==文档中单击的位置-文档中画布的位置(相对于左侧)
var y=event.clientY-rect.top;//y==文档中单击的位置-文档中画布的位置(相对于顶部)
推({
x:x,
y:y
});
如果(Pts.length==2){
dist=getDistance();
附加输入(Pts[1].x,Pts[1].y);
}
绘制坐标(x,y);
如果(Pts.length%2==0){
抽绳(点[Pts.length-2].x,点[Pts.length-2].y,点[Pts.length-1].x,点[Pts.length-1].y);
};
}
函数decimalAdjust(类型、值、exp){
//如果exp未定义或为零。。。
if(typeof exp==‘未定义’| |+exp===0){
返回数学[类型](值);
}
值=+值;
exp=+exp;
//如果值不是数字或exp不是整数。。。
如果(isNaN(值)| |!(typeof exp=='number'&exp%1==0)){
返回NaN;
}
//如果值为负。。。
如果(值<0){
return-decimalAdjust(type,-value,exp);
}
//移位
value=value.toString().split('e');
value=Math[type](+(值[0]+'e'+(值[1]?(+value[1]-exp):-exp));
//向后移动
value=value.toString().split('e');
返回+(值[0]+'e'+(值[1]?(+value[1]+exp):exp));
}
//小数点
如果(!Math.round10){
Math.round10=函数(值,exp){
返回十进制调整('round',value,exp);
};
}
函数getDistance(){
dist=Math.sqrt(Math.pow(Math.abs(Pts[Pts.length-2].x-Pts[Pts.length-1].x),2)+Math.pow(Math.abs(Pts[Pts.length-2].y-Pts[Pts.length-1].y),2));
返回距离固定(2);
}
功能抽绳(x1、y1、x2、y2){
var ctx=document.getElementById(“画布”).getContext(“2d”);
ctx.beginPath();
ctx.moveTo(x1,y1);
ctx.lineTo(x2,y2);
如果(Pts.长度<3){
ctx.strokeStyle='蓝色';
}否则{
ctx.strokeStyle=‘黑色’;
}
ctx.stroke();
dist=getDistance();
txt=距离*比率;
如果(Pts.length>2){
绘图文本(txt、x1、y1、x2、y2);
}
}
函数附加输入(x,y){
var input=document.createElement('input');
input.type='text';
input.style.position='固定';
input.style.left=(x+4)+“px”;
input.style.top=(y+4)+“px”;
input.onkeydown=handleEnter;
document.body.appendChild(输入);
input.focus();
hasInput=true;
}
功能手柄中心(e){
var-keyCode=e.keyCode;
如果(键代码===13){
inputValue=此.value;
document.body.removeChild(本文件);
hasInput=false;
比率=输入值/距离;
如果(Pts.length==2){
drawText(“参考线=“+dist*ratio,Pts[Pts.length-2].x,Pts[Pts.length-2].y,Pts[Pts.length-1].x,Pts[Pts.length-1].y);
}
}
}
函数坐标(x,y){
var pointSize=3;//根据点的大小进行更改。
var ctx=document.getElementById(“画布”).getContext(“2d”);
如果(Pts.长度<3){
ctx.fillStyle=“蓝色”;//红色
}否则{
ctx.fillStyle=“red”;//红色
}
ctx.beginPath();//开始路径
arc(x,y,pointSize,0,Math.PI*2,true);//使用具有点结构的画布的arc函数绘制点。
ctx.fill();//关闭路径并填充。
}
函数drawText(txt、x1、y1、x2、y2){
//(x,y)两个点之间文字中间的坐标
x=((x2+x1)/2)+5;
y=((y2+y1)/2)+5;
var ctx=document.getElementById(“画布”).getContext(“2d”);
ctx.save();
ctx.textb基线='top';
ctx.textAlign='左';
//ctx.font=font;
角度=Math.atan((Math.abs(y2-y1))/(Math.abs(x2-x1));
控制台。日志(角度);
ctx.translate(x,y)
//ctx.旋转(-1*角度);
ctx.fillText(txt,0,0);
ctx.restore();
}
函数下载_image(){
//将画布内容转储到文件中。
var canvas=document.getElementById(“canvas”);
var today=新日期();
var date=today.getFullYear()+“”+(today.getMonth()