浏览器中未显示Javascript
我正在本地主机上制作web应用程序,但浏览器页面始终显示为空白,我做错了什么?谢谢浏览器中未显示Javascript,javascript,html,Javascript,Html,我正在本地主机上制作web应用程序,但浏览器页面始终显示为空白,我做错了什么?谢谢 <html> <head> <script> window.onload = function() { var canvas = document.getElementById("canvas"), ctx = canvas.getContext("2d"), W = window.innerWidth, H = window.innerHeight; setInterv
<html>
<head>
<script>
window.onload = function() {
var canvas = document.getElementById("canvas"),
ctx = canvas.getContext("2d"),
W = window.innerWidth,
H = window.innerHeight;
setInterval(draw, 33);
function draw() {
ctx.globalcompositeOperation = "source-over";
ctx.fillStyle = "black";
ctx.fillRect(0,0,W,H);
}
}
</script>
</head>
<body>
<canvas id="canvas"></canvas>
window.onload=函数(){
var canvas=document.getElementById(“canvas”),
ctx=canvas.getContext(“2d”),
W=窗宽,
H=窗内高度;
设置间隔(绘制,33);
函数绘图(){
ctx.globalcompositeOperation=“源代码结束”;
ctx.fillStyle=“黑色”;
ctx.fillRect(0,0,W,H);
}
}
您在分配给
onload
的匿名函数中声明了一组变量。他们不是全球性的
然后尝试(每隔一段时间)将它们作为全局对象访问
如果您查看开发人员工具中的控制台,您应该会看到一系列引用错误
移动setInterval
并在分配给onload
的匿名函数中绘制函数声明
window.onload=函数(){
var canvas=document.getElementById(“canvas”),
ctx=canvas.getContext(“2d”),
W=窗宽,
H=窗内高度;
设置间隔(绘制,33);
函数绘图(){
ctx.globalcompositeOperation=“源代码结束”;
ctx.fillStyle=“黑色”;
ctx.fillRect(0,0,W,H);
}
}
您在分配给onload
的匿名函数中声明了一组变量。他们不是全球性的
然后尝试(每隔一段时间)将它们作为全局对象访问
如果您查看开发人员工具中的控制台,您应该会看到一系列引用错误
移动setInterval
并在分配给onload
的匿名函数中绘制函数声明
window.onload=函数(){
var canvas=document.getElementById(“canvas”),
ctx=canvas.getContext(“2d”),
W=窗宽,
H=窗内高度;
设置间隔(绘制,33);
函数绘图(){
ctx.globalcompositeOperation=“源代码结束”;
ctx.fillStyle=“黑色”;
ctx.fillRect(0,0,W,H);
}
}
除了@Quentin提到的其他问题外,还有一些关于可变范围的问题。您在窗口内定义了局部变量ctx
、W
和H
。onload
,无法从draw
访问
var-ctx,W,H;
window.onload=函数(){
var canvas=document.getElementById(“canvas”);
W=窗宽;
H=窗内高度;
ctx=canvas.getContext(“2d”);
设置间隔(绘制,33);
}
函数绘图(){
ctx.globalCompositeOperation=“源代码结束”;
ctx.fillStyle=“黑色”;
ctx.fillRect(0,0,W,H);
}
除了@Quentin提到的其他问题外,还有一些关于可变范围的问题。您在窗口内定义了局部变量ctx
、W
和H
。onload
,无法从draw
访问
var-ctx,W,H;
window.onload=函数(){
var canvas=document.getElementById(“canvas”);
W=窗宽;
H=窗内高度;
ctx=canvas.getContext(“2d”);
设置间隔(绘制,33);
}
函数绘图(){
ctx.globalCompositeOperation=“源代码结束”;
ctx.fillStyle=“黑色”;
ctx.fillRect(0,0,W,H);
}
是否已检查开发人员控制台中的错误消息?已更正,但仍然相同problem@Hacketo-body元素的end标记是可选的(根据HTML规范)(与start标记一样)。是否已检查开发人员控制台中的错误消息?已更正,但仍然相同problem@Hacketo-body元素的end标记是可选的(根据HTML规范)(与start标记一样).我像你说的那样改正了,但还是一样problem@zigg75483-在答案中的演示中效果很好。是的,所以我不确定为什么我的没有出现,我甚至复制并粘贴了你的代码,但仍然是空白的,因为我按照你说的更正了代码,但仍然是一样的problem@zigg75483-在答案中的演示中效果很好。是的,所以我不确定为什么我的代码没有出现,我甚至复制并粘贴了你的代码,但仍然是空白的,因为我复制了你的代码,但对我来说仍然是空白的,不确定发生了什么我真的不确定你做了什么,你可以在这里运行代码段并查看它的工作情况。我已经设法使黑色背景显示出来,但它没有显示为完整的页面,即使使用window.innerwidth这是因为实际的画布不是窗口的大小。尝试在窗口中分别将canvas.width
和canvas.height
设置为W
和H
。onload
。我复制了你的代码,但对我来说仍然是空白的,不确定发生了什么事,我真的不确定你做了什么,您可以在此处运行代码段并查看它的工作情况。我已设法使黑色背景显示出来,但它不会显示为整个页面,即使使用window.innerwidth这是因为实际画布的大小与窗口的大小不同。尝试在窗口中分别将canvas.width
和canvas.height
设置为W
和H
。onload
。