Javascript 分区内的HTML JS画布未显示

Javascript 分区内的HTML JS画布未显示,javascript,html,css,canvas,Javascript,Html,Css,Canvas,所以,我试图用HTML/CSS/JS制作一个简单的游戏,但是画布有一个问题。我的完整代码位于,其中有一部分如下: <div> ... </div> <p id="footer"></p> __________ document.body.insertBefore(this.canvas, document.getElementById("footer")); ... __________ document.body.insertBefore(

所以,我试图用HTML/CSS/JS制作一个简单的游戏,但是画布有一个问题。我的完整代码位于,其中有一部分如下:

<div>
...
</div>
<p id="footer"></p>
__________
document.body.insertBefore(this.canvas, document.getElementById("footer"));

...

__________ document.body.insertBefore(this.canvas,document.getElementById(“footer”));
现在,它可以像预期的那样工作,当按下“开始”按钮时,在所有内容的顶部绘制画布。但是如果我把锚标签放在div里面,比如:

<div>
...
<p id="footer"></p>
</div>

...


那么画布就不会出现了。我看不出这样做的逻辑原因,我遗漏了什么?

好的,原因是
insertBefore()使用不当。应该为div设置一个id,并使用
document.getElementById(“mainDiv”).appendChild(this.canvas)相反。

那么,控制台中有错误吗?Pastebin并没有真正的帮助,如果您只是创建一个并将代码发布到此处,它会更容易。真正的原因是
parentNode.insertBefore
的第二个参数必须是
parentNode
的直接子级。在这里,您将
#footer
移动到div中,这使它不再是
document.body
的直接子对象。您应该调用
footer.parentNode.insertBefore(canvas,footer)
div.appendChild
不会有相同的效果。嗯,
appendChild()
适合我,因为页脚是空的,我并不需要它。视觉结果是相同的。:-)您的画布是绝对定位的,其他元素都不是,因此您可以将其添加到文档中的任何位置,并且“视觉结果[将]是相同的”,是的,那不是最终的解决办法。现在我有了它相对于主div的位置。