3

この Web アプリケーションの同じ HTML ファイル内に CSS、Javascript、および HTML5 コードをコーディングした後、CSS と Javascript をそれぞれの外部ファイルに分割し、それらを HTML5 ファイルに含めることにしました。

以下を追加するまで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 ファイル内の他のすべてが正常にロードされます。

何がこの問題を引き起こしているのかわかりません。

4

1 に答える 1

6

問題は、javascript には関数スコープがあることです。つまり、関数内で定義された変数/関数は、その関数内でのみ表示され、外部では表示されません。window.onload=function(){/*your code here*/}追加のスコープを作成するため、たとえば、createWellPump()関数は window.onload ラッパー関数の外では認識されません。

最も簡単な解決策は、ラッパーを再度削除し、終了タグwindow.onloadの直前にスクリプトをロードすることです。</body>

于 2012-04-10T02:30:33.213 に答える