2017-05-13 7 views
0

これは本当に奇妙なエラーです。 HTMLファイルから外部JSファイルにリンクしようとしています。私が何をしても、その外部JSファイルの関数を呼び出すことはできません。外部JavaScriptファイルが動作しない - ReferenceError

これは私のHTMLコードです:

<html> 
    <head> 
     <meta charset="UTF-8"> 
     <script src="cookies.js"></script> 
     <script type="text/javascript"> 
      //some other JavaScript... 
      function test() { 
       extTest(); 
      } 
     </script> 
    </head> 
    <body> 
     <button type="button" onclick="test();">Test</button> 
    </body> 
</html> 

そして、これは私の外部のJavaScriptファイルです:

function extTest() { 
    alert("Hello world"); 
} 

(私は、必要な行を含むように、両方のコードブロックを簡素化。)

だから、ボタンをクリックするたびに関数extTest()は "Hello world"というポップアップを開くことになっています。しかし、extTest()は呼び出されません。代わりに、 "ExtTestが定義されていません"というReferenceErrorを取得します。問題はFirefoxとChromeとEdgeで発生します。

両方のファイル(HTMLとJS)は、ノートパソコンの同じディレクトリにあります。私は相対リンク(上のコードに示されているように)を使用して相対リンクJSファイルにリンクしてみました。カレントディレクトリ(./cookies.js)と絶対リンク(/ C:/ ...)のためのものです。私はまた、独自のフォルダにJSファイルを入れてそれにリンクしようとしましたが、うまくいきませんでした。

JavaScriptについては初心者だと思いますが、すでに外部JSファイルを使用していました。あなたは、このエラーがどこから来たのか考えていますか?つまり、外部ファイルのすべてのコードをHTMLファイルのスクリプトに入れることができますが、なぜそれが他の方法で動作しないのかは本当に不思議です。

ヒントは非常に高く評価されています、事前におねがいします。私はあなたが

<html> 
    <head> 
     <meta charset="UTF-8"> 
     <script src="cookies.js"></script> 
    </head> 
    <body> 
     <button type="button" onclick="extTest();">Test</button> 
    </body> 
</html> 
+0

これらは、問題を再現できるファイルの実際のコンテンツですか?私。あなたがここで省略した部分に問題がないと確信していますか?コンソールに他のエラーがありますか?ネットワーク要求を見るとき、jsファイルは実際にロードされていますか? – jcaron

+0

ブラウザのネットワークタブ(開発者モード)を見て、関数を呼び出す前に外部のjavascriptファイルがロードされていることを確認してください。 –

答えて

0

は、あなたが内部の別の関数を作成する必要はありません。あなたの機能テストを宣言していますが、呼び出すことはありません。その下に行を置いてみてください: test();

あなたが外部の.jsファイルの末尾に同様にextTest関数を呼び出すと、私は再びというextTest()という行を置くことになります。それは意図どおりに機能しますか?そうでなければ、手元に別の問題があるかもしれません。

+0

別の関数テストからextTestを呼び出しました。なぜなら、行にブレークポイントを置き、デバッガからもっと多くを見つけることができます。 – casmatix

0

私はそれはあなたがしているように見える最初に言うと思いますcookies.jsでjsのコードを作成したとしているためあなたはちょうどこのように使用することができます

0

なぜ私は絶対に考えていませんが、明らかに外部ファイルの機能が動作しています。とにかくあなたの答えをありがとう。

関連する問題