Javascript Three.js不';行不通
我即将学习Javascript Three.js不';行不通,javascript,three.js,webgl,Javascript,Three.js,Webgl,我即将学习three.js。我已经从github下载了库: 我尝试在上面的链接中运行three.js的第一个示例。奇怪的问题是,它在JSFIDLE中工作,但在我的计算机中不工作。 我在控制台中发现此错误: TypeError: document.body is null [Break On This Error] document.body.appendChild( renderer.domElement ); 这是我的代码,完全从上面的链接复制而来: 是的,页面中包含了三个.js
three.js
。我已经从github下载了库:
我尝试在上面的链接中运行three.js的第一个示例。奇怪的问题是,它在JSFIDLE中工作,但在我的计算机中不工作。
我在控制台中发现此错误:
TypeError: document.body is null
[Break On This Error]
document.body.appendChild( renderer.domElement );
这是我的代码,完全从上面的链接复制而来:
是的,页面中包含了三个.js
在浏览器解析HTML文档并构建DOM之前,您的代码正在运行。这就是document.body
未定义的原因
使用“加载”事件处理程序:
window.onload = function() {
// all that code here
};
您的JSFIDLE版本之所以有效,是因为该站点为您提供了这一功能;这就是左侧控制面板上的顶级选择
哦,另外,从JSFIDLE复制代码时必须小心。除非他们在最近的改版中修复了它,否则在复制/粘贴时很容易发现奇怪的隐藏字符,从而导致神秘的JavaScript错误。只需在onload
中编写代码即可。它很好用
window.onload = function() { // your code }
把它放在一个加载事件中。你忘了描述它是如何工作的-有错误吗?奇怪的行为?没有行为?@Pointy Question已编辑。您确实将其放入了一个有效的html文件中,并声明了一个body,write?@camus'onload'是问题所在。谢谢加缪和波蒂
window.onload = function() { // your code }