Gunnar Bittersmann: javascript funktion .load html -> in div-Element

Beitrag lesen

@@Felix Riesterer

2. Ohne JavaScript ist die Benutzung Deiner Seite also völlig unmöglich. Ist das so gewollt, und wenn ja, warum?

Natürlich kann man zu 2. argumentieren, dass fast keine Seitenbesucher mehr ohne JavaScript daher kommen

Kann man? Von einigen JavaScript-Deaktivierern abgesehen: jeder Seitenbesucher kommt ohne JavaScript daher, solange das JavaScript nicht geladen und ausgeführt wurde.

Und das passiert häufiger als man denkt. Fahr mal mit der Bahn durch BrandEDGEburg! Und eingebundene fehlerhafte Fremd-Scripte können die Ausführung des eigenen JavaScripts verhindern.

Ich liebäugle noch sehr mit der Ansicht, dass die Inhalte einer Seite grundsätzlich ohne JavaScript erreichbar sein müssen.

Noch? Die Liebäugelei solltest du dir erhalten. JavaScript ist fragil; man kann sich darauf nicht verlassen.

Meine Frage ist, ist dies überhaubt möglich ohne das ich den Browser zwinge die gesamt Seite neu zu laden?

Ja, undzwar genau dann, wenn Du alle Inhalte "irgendwie" schon in dieser einen Seite geladen hast.

„Genau dann, wenn“ trifft nicht zu. Man kann Inhalte mit JavaScript/AJAX auch nachladen.

<main>
  <article id="home">...</article>
  <article id="contact">...</article>
  <article id="privacy-policy">...</article>
</main>

Ich glaube nicht, dass article hier das passende Element ist. Ich tendiere zu section oder div.

Was auch ginge:

<main id="home">...</main>
<main id="contact" hidden="">...</main>
<main id="privacy-policy" hidden="">...</main>

Allerdings braucht man dann zum Umschalten der Sichtbarkeit (des hidden-Attributs) JavaScript.

Und was man bei einer JavaScript-Lösung auf keinen Fall vergessen sollte: Über das History-API den URL in der Adresszeile ändern, damit die Seite als Lesezeichen gesetzt und mit anderen geteilt werden kann. Und damit der Zurück-Buttons des Browsers funktioniert.

LLAP 🖖

--
„Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann