Lieber Lars,
Mein Ziel ist es, einen <div id="content"> mittels javascript Function durch die Auswahl aus einem Navi Menü neu zu füllen.
dazu habe ich zwei Dinge:
- Du möchtest anstelle von <div id="content"> lieber ein <main>.
- 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, aber inwiefern trennst Du dann Inhalt (Marku, HTML-Code) von Programmlogik (JavaScript)? Ich liebäugle noch sehr mit der Ansicht, dass die Inhalte einer Seite grundsätzlich ohne JavaScript erreichbar sein müssen. Auch wenn sie dann "weniger schön" dargestellt oder benutzbar sind.
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. Das ist übrigens auch das Konzept hinter den "one-pager"-Seiten. Allerdings sind die einfach eine lange Scroll-Angelegenheit. Aber genau hier könntest Du ansetzen und Deine Inhalte eben durch Verweise "austauschen". Dazu bräuchtest Du noch nicht einmal JavaScript, sondern könntest rein mit CSS das gleiche erreichen:
<main>
<article id="home">...</article>
<article id="contact">...</article>
<article id="privacy-policy">...</article>
</main>
<nav>
<h2>Navigation</h2>
<ul>
<li><a href="#home">Home</a></li>
<li><a href="#contact">Contact Us</a></li>
<li><a href="#privacy-policy">Our Privacy Policy</a></li>
</ul>
</nav>
Und in Deinem CSS-Code müsste dann in etwa das hier stehen:
article { display: none; }
article:target { display: block; }
Die Function schein aufgerufen zu werden, dies habe ich mittels Alarm-Function getestet. Leider wird das <div> nicht aktualisiert, oder wird es eventuell aktualisiert und der Browser weiß nur nichts davon?
Hehe, willkommen beim Schreiben von JavaScript. Du nanntest HTML als Dein Vorwissen. JavaScript ist eine ergänzende Technologie, die aus dem Bereich der Programmiersprachen kommt. HTML ist keine Programmiersprache.
Ich möchte halt den Inhalt des <div> in Abhägigkeit der Menüauswahl ändern ohne immer die ganze Seite neu laden zu müssen.
Das geht schon ohne JavaScript. Siehe oben.
<li><a href="javascript:reload()">Home</a></li>
Keine gute Idee. Du notierst JavaScript-Code in Deinem HTML-Dokument. Ohne JavaScript sollte da etwas anderes passieren. Also muss Dein JavaScript-Programm diese Links "kapern" und mit Deiner dynamischen Arbeitsweise versehen. Das nennt man dann wohl unobtrusive... also unaufdringlich. So machst Du die Funktionalität (lies: die Benutzbarkeit) Deiner Seite kaputt, weil ohne JavaScript nichts mehr geht (und aktuell mit JavaScript auch nicht).
<li><a href="#">Kalender</a></li>
Siehst Du was ich meine? Hier kommt kein Kalender.
test.html ist liegt im selben Ordner wie die index.php und enthält zum testen einfach nur das Wort: Funktioniert
Oh weh, mit PHP hantierst Du auch noch? Wozu denn? Was leistet Dein PHP-Script, was Dein HTML nicht kann? Was für eine Programmlogik leistet hier PHP? Nicht, dass ich Dir ausreden möchte, den Umgang mit PHP zu erlernen, aber was genau tust Du hier?
Für das obige Beispiel von mir könnte ich mir vorstellen, dass Dein PHP-Script einzelne HTML-Dateien zu einem gemeinsamen Dokument zusammenführt. Dabei könnten die einzelnen Seiten in Dateien wie home.html
, contact.html
oder privacy-policy.html
stehen, und das PHP-Script baut aus ihrem Dateinamen entsprechende id
-Werte (siehe Beispiel oben) für die article
-Elemente, welche den HTML-Code aus dem jeweiligen body
-Element der HTML-Dateien erhalten.
Eine solche Lösung wäre gut skalierbar, da Du für weitere Seiten einfach (wirklich "einfach"!) weitere HTML-Dateien in das jeweilige Verzeichnis ablegst, die dann von PHP gefunden und auf dieselbe Weise eingebunden werden.
Wenn Du später einmal eine Unterstützung für Mehrsprachigkeit obendrauf satteln willst, ist auch das mit diesem Vorgehen zu machen.
Liebe Grüße,
Felix Riesterer.