Javascript auslagern (HTML)?
Hallo,
wenn ich mit <script> einen Javascriptcode in HTML schreibe, geht alles, wenn ich das Script auslagere also in eine .js Datei schreibe und genau den gleichen Text wie im HTML Code dort einfüge, ohne das <script> </script>, dann geht es irgendwie nicht. Ich habe die Datei im Head so verlinkt <script src="js/button.js"></script>
Wieso geht es dann nicht mehr?
LG
4 Antworten
Vermutlich liegt es daran, dass du es direkt zu Beginn an eingebunden hast.
Beispielsweise funktioniert es nicht, wenn du deinen Button mit JavaScript funktional machen möchtest und JavaScript direkt zu Beginn einbindest, der Button aber im HTML Dokument erst später erzeugt wird. Deswegen solltest du einmal das <script>-Tag ans Ende vom <body> setzen:
<!DOCTYPE html>
<html lang="de">
<head>
</head>
<body>
<script src="js/button.js></script>
</body>
</html>
Mehr dazu inkl. Beispiel findest du hier:
https://wiki.selfhtml.org/wiki/JavaScript/Tutorials/DOM/Einbindung_in_HTML
Mmh, kannst du den Code mal zeigen? Aber wie gesagt, grundsätzlich die Referenz (also das <script>-Tag) als letzten Tag vor </body> setzen, sodass auch alles schon erzeugt wurde. Je nach Quellcode kann das aber variieren. Also wie gesagt: Grundsätzlich, nicht immer.
Hat nichts gebracht, aber mit console.log hab ich heraus gefunden, dass die Datei tut. Soll ich die variable irgendwie ändern?
Welche Fehlermeldungen kommen denn in der Browser-Konsole? Wird das Script überhaupt geladen?
Probier mal das Script jsbutton zu nennen.
<script src="jsbutton.js"></script>
Hi ,
bin mir nicht sicher deine Frage richtig verstanden zu haben und bin selbst Anfänger.
Doch ich habe vermutlich das gleiche Problem.
Ich glaube es liegt hieran:
Wenn du das Script in deinen HTML-code schreibst, sieht der Code wohl so aus:
<Script>
$( document ).ready(function() {
console.log( "juhuuuuu!" );
});
</Script>
Wenn man den Code in eine *.js-Datei auslagern möchte , muss er glaub ich verändert werden
..so, oder so ähnlich :
- <Script > muss weg
- document.ready muss weg...
bin echt auf die richtige Antwort gespannt ...
$(document).ready kann immer bleiben, sofern man irgendwie vorher jQuery lädt.
Habe nichts davon drin und es tut nicht, die Datei wird mit console.log aber erkannt, also der Text wird ausgegeben
Ich habe den Fehler gefunden, doch warum muss ich das ganz am Ende (unter den Footer) lazieren?? Macht irgendwie keinen sinn, da es macht, dass wenn man scrollt ein Knopf angezeigt wird, um nach oben zu gelangen.