Funktionsaufruf html + javascript
bearbeitet von@@Reschi
> Blutiger Anfänger...
> geht los :
>
> ~~~html
> <html>
> ~~~
Da fehlt was: Als erstes `<!DOCTYPE html>`{:.language-html}, um die Seite im Standard-Modus und nicht im Quirks-Modus zu rendern.
Außerdem die notwendige Angabe der Sprache des Seiteninhalts: `<html lang="de">`{:.language-html} für Deutsch; `<html lang="en">`{:.language-html} für Englisch.
> ~~~html
> <head>
> .
> .
> .
> <title>myAVR-Server</title>
> ~~~
In den drei Punkten ist die Angabe `<meta name="viewport" content="width=device-width, initial-scale=1.0"/>`{:.language-html} enthalten, damit die Seite auch auf Smartphones lesbar ist?
Und auch die Angabe der Zeichencodierung `<meta charset="UTF-8"/>`{:.language-html}?
> ~~~html
> <script src="allg.js" type="text/javascript"></script>
>
> <script language="JavaScript" type="text/javascript">
> .
> .
> .
> ~~~
Die Scripte sollten nicht an dieser Stelle stehen, weil sie so das Rendern der Seite verzögern. Gut aufgehoben sind sie ganz unten am Ende des `body`.
> ~~~html
> function setStatus(inp)
> ~~~
Das ist unleserlicher Code. Was bedeutet `inp`{:.language-js}?
> ~~~html
> <body onLoad="onloadDo();">
> ~~~
Damit läuft das Script vermutlich erst später als nötig, nämlich erst nach dem Laden sämtlicher Ressourcen auf der Seite, einschließlich Bilder.
Das Script kann sicher schon früher ausgeführt werden: beim [`DOMContentLoaded`{:.language-js}-Event](https://developer.mozilla.org/de/docs/Web/API/Document/DOMContentLoaded_event). Dafür gibt’s kein `on…`-Attribut. Den Eventhandler braucht man aber gar nicht, wenn man das Script am Ende des `body` notiert, was sowieso ein guter Platz dafür ist, s.o.
🖖 Live long and prosper
{:@en}
--
*In our chants of “ICE out now”
Our city’s heart and soul persists
Through broken glass and bloody tears
On the streets of Minneapolis*{:@en}
— Bruce Springsteen, [Streets of Minneapolis](https://www.youtube.com/watch?v=GDaPdpwA4Iw){:@en}