2012-04-10 115 views
2

在为此Web应用程序编码同一HTML文件中的CSS,Javascript和HTML5代码之后,我决定将CSS和Javascript拆分为各自的外部文件并将它们包含到HTML5文件中。外部Javascript - 函数未定义?

我遇到了一个小问题哪个Javascript代码将无法正常工作,直到我说以下内容:

window.onload = function() { //script code} 

现在好像一切,但功能不加载。由于我发现使用Firebug的错误说功能尚未定义,这显然是。

下面是代码:

的HTML页面 http://turing.cs.olemiss.edu/~sbadams2/RebelFlow.html

JS文件 http://turing.cs.olemiss.edu/~sbadams2/RebelFlow.js

我读过其它响应其内的状态,该路径可能是不正确的,但一切除了实际的功能,Javascript文件可以正常加载。

我不确定可能是什么原因导致此问题。

+0

所以你所有的函数没有定义,或者只是'window.onload'不工作?欢迎来到SO〜 – 2012-04-10 02:22:40

+0

很显然,window.onload在加载Javascript代码的时候会有一定程度的工作,但不幸的是,现在说尽管事实上他们是这样的,但函数并没有被定义。我在Javascript和Web应用程序方面相当新颖。 – Sbadams2 2012-04-10 02:25:42

+1

当你把所有的东西编码在一起时,JavaScript在哪里,头部还是身体的尽头? – j08691 2012-04-10 02:30:07

回答

5

问题是JavaScript有函数范围,这意味着函数内定义的变量/函数只在该函数内部可见,而不在外部。 window.onload=function(){/*your code here*/}创建一个额外的范围,因此例如您的createWellPump()函数是不知道的window.onload包装函数之外。

最简单的解决方案是再次删除window.onload包装,并直接在关闭</body>标记之前加载脚本。

+0

钉住它。这似乎是问题。 – Sbadams2 2012-04-10 02:36:44