Auge: Javascript: Warum hat Safari Probleme mit const?

Beitrag lesen

Hallo

Vielleicht, weil die Struktur des HTML-Quelltexts der von Gunnar verlinkten Beispielseite kaputt ist. Es fehlt der Head-Bereich des Dokuments (<head></head>) und <body</body>. Alle Angaben, die im Head-Bereich stehen (meta, title und so) als auch der Content des Dokuments stehen direkt unter html. Damit muss schon irgendwas mit document.body… scheitern.

Dann wäre Safari aber nicht standardkonform, <html>, <head>, <body> sind implizt. Auch Safari hat seit ewig den genormten HTML-Parser implementiert (und auch KHTML und alle andern Engines haben das seit Angeginn der Zeit so gehandhabt).

An der Stelle lautet die Frage wohl eher, ob die JS-Engine das auch so sieht. Ich kann sie nicht beantworten, aber die von Gunnar per Screenshot gezeigte Fehlermeldung lässt mich daran zweifeln. Laut der Meldung in der Konsole ist die Variable BL schlicht nicht auffindbar.

So, wie ich das sehe, läuft da folgendes ab.

// kein <body> => Haupt = null
const Haupt =  document.body.querySelector("main");
// Haupt === null => Bild = null
const Bild =   Haupt.querySelectorAll("img");
// Bild === null => BL = null
const BL =     Bild.length;

Ob ich das wirklich richtig sehe, kann ich so zwischen Tür und Angel sowie ohne Safari aber nicht beurteilen.

Tschö, Auge

--
„Habe ich mir das nur eingebildet, oder kann der kleine Hund wirklich sprechen?“ fragte Schnapper. „Er behauptet, nicht dazu imstande zu sein“ erwiderte Victor. Schnapper zögerte (…) „Nun …“ sagte er schließlich, „ich schätze, er muss es am besten wissen.“ Terry Prattchett, Voll im Bilde