我正在使用标签创建文档,但我遇到了问题。 我已将canvas和context声明为全局变量,并在初始函数中填充它们。这似乎部分工作,但某些函数(例如,一个调用画布宽度)给我错误:“无法在null上调用方法getAttribute”
这是因为我试过用这种方式设置文件吗?我在定义时尝试填充它们(就像它们可以用于局部变量一样),但这似乎产生了同样多的错误!
我正在声明变量:
var canvas = null;
var context = null;
将它们填充到与body onload链接的函数中,如下所示:
canvas = document.getElementById("imageDisplay");
context = canvas.getContext("2d");
我是否应该为每个使用它们的功能重新填充它们?
我昨天在另一段脚本中使用了几乎完全相同的方法,但工作得很好!我不明白我做错了什么!
由于
答案 0 :(得分:-1)
您的问题可能是一个范围问题。
root或window javascript
var canvas;
var context;
canvas = document.getElementById("imageDisplay");
context = canvas.getContext("2d");
foo();
function foo
foo{
canvas = document.getElementById("imageDisplay");//errors
context = canvas.getContext("2d");
}
如果我的理解(javascript和你的问题都是正确的)画布没有定义,因为foo.canvas与window.canvas不同。您需要在foo中重新声明canvas和context,或者使用window.canvas和window.context,或者传入这些变量。我在javascript上有点新手所以希望其他人可以调解