これは本当に奇妙なエラーです。 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>
これらは、問題を再現できるファイルの実際のコンテンツですか?私。あなたがここで省略した部分に問題がないと確信していますか?コンソールに他のエラーがありますか?ネットワーク要求を見るとき、jsファイルは実際にロードされていますか? – jcaron
ブラウザのネットワークタブ(開発者モード)を見て、関数を呼び出す前に外部のjavascriptファイルがロードされていることを確認してください。 –