Heim  >  Artikel  >  Web-Frontend  >  Warum funktioniert mein JavaScript-Code auf JSFiddle.net nicht?

Warum funktioniert mein JavaScript-Code auf JSFiddle.net nicht?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-31 22:38:28820Durchsuche

Why is My JavaScript Code Not Working on JSFiddle.net?

JavaScript funktioniert nicht auf JSFiddle.net

Der bereitgestellte Code funktioniert auf einer Live-Site, kann jedoch nicht auf JSFiddle.net ausgeführt werden, was zu Fehlern führt wie „ReferenceError: fillList ist nicht definiert“ und „ReferenceError: mySelectList ist nicht definiert.“

Erklärung:

Der Fehler tritt auf, weil die Funktionen im HTML referenziert werden („fillList()“ und „findIt()“) werden innerhalb der Funktion „window.onload“ definiert. In diesem Zusammenhang sind diese Funktionen nur innerhalb der Onload-Funktion zugänglich und können nicht als globale Variablen referenziert werden.

Lösung:

Um dieses Problem zu beheben, haben Sie drei Möglichkeiten :

  1. Funktionsdefinition ändern:

    • Ändern Sie die Funktionsdefinitionen von „function blah(){}“ in „window.blah“. = Funktion(){};". Dadurch werden die Funktionen global und über den HTML-Code zugänglich.
  2. Unauffälliges JavaScript:

    • Trennen Sie das JavaScript vom HTML und fügen Sie Ereignishandler ausschließlich über JavaScript an DOM-Elemente an. Dadurch entfällt die Abhängigkeit von globalen Funktionen.
  3. JSFiddle-Einstellungen anpassen:

    • Ändern Sie die JSFiddle-Einstellungen auf „kein Umbruch“. (body or head)“, was verhindert, dass JSFiddle den Code in eine window.onload-Funktion einschließt.

Empfehlung:

Option b (unaufdringliches JavaScript) ist der empfohlene Ansatz, da sie Best Practices zur Trennung von HTML und Logik folgt. Dies fördert die Wartbarkeit und verbessert die Wiederverwendbarkeit des Codes.

Das obige ist der detaillierte Inhalt vonWarum funktioniert mein JavaScript-Code auf JSFiddle.net nicht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn