Also, ich habe diesen wirklich seltsamen Fehler. Ich versuche, eine Verbindung zu einer externen JS-Datei aus meiner HTML-Datei herzustellen. Was auch immer ich mache, die Funktionen in dieser externen JS-Datei können nicht aufgerufen werden.Externe JavaScript-Datei funktioniert nicht - ReferenceError
Das ist mein HTML-Code:
<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>
Und das ist meine externe JavaScript-Datei: (. Ich beide Codeblöcke vereinfacht nur die notwendigen Leitungen enthalten)
function extTest() {
alert("Hello world");
}
Also, wenn ich auf die Schaltfläche klicke, sollte die Funktion extTest() ein Popup öffnen, das "Hallo Welt" sagt. Aber extTest() wird nicht aufgerufen. Stattdessen erhalte ich einen ReferenceError, der sagt "extTest ist nicht definiert". Das Problem tritt sowohl in Firefox als auch in Chrome und Edge auf.
Beide Dateien (HTML und JS) befinden sich im selben Verzeichnis auf meinem Laptop. Ich habe versucht, mit der JS-Datei mit einem relativen Link (wie im obigen Code gezeigt), eine relative Verbindung mit. für das aktuelle Verzeichnis (./cookies.js) und einen absoluten Link (/ C:/...). Ich habe auch versucht, die JS-Datei in einen eigenen Ordner zu stellen und zu verlinken, es hat nicht funktioniert.
Ich würde mich eher als Anfänger betrachten, wenn es um JavaScript geht, aber ich habe bereits externe JS-Dateien verwendet und es hat funktioniert. Wissen Sie, woher dieser Fehler kommt? Ich meine, ich könnte den gesamten Code aus der externen Datei in das Skript in der HTML-Datei einfügen, aber ich bin wirklich neugierig, warum es nicht anders geht.
Alle Hinweise werden sehr geschätzt, danke im Voraus.
Sind dies die tatsächlichen Inhalte der Dateien, mit denen Sie das Problem reproduzieren können? I.e. Sind Sie sicher, dass das Problem nicht in den Teilen liegt, die Sie hier weggelassen haben? Erhalten Sie andere Fehler in der Konsole? Wenn Sie nach Netzwerkanforderungen suchen, ist Ihre js-Datei tatsächlich geladen? – jcaron
Schauen Sie auf den Netzwerk-Tab Ihres Browsers (im Entwickler-Modus) und stellen Sie sicher, dass die externe Javascript-Datei geladen ist, bevor Sie die Funktion aufrufen –