• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

SHTML mit JavaScript + CSS - wo muss was hin?

wtronic

Neues Mitglied
Hallo HTML.de-Gemeinde,

zuerst mal ein Hallo in die Runde!

Wie wohl die meisten, die hier erstmalig aufschlagen, bin auch ich am Ende mit meinem Latein und möchte euch um eure Hilfe bitten.

Ich versuche schon seit Tagen ein .shtml-file in eine .html-Datei einzubinden, bekomme es aber schlicht nicht gebacken, obwohl es auf den ersten Blick ja nicht sooo schwierig zu sein scheint.

Es geht um eine Navigationsleiste, die ich gerne auslagern würde.

Bei der .html-Datei handelt es sich um ein "old school"- Gerüst, also mit table, td und tr aufgebaut.

Also habe ich die Anweisung zwischen ein schließendes </tr> und das nächste öffnende <tr> geschrieben:

Code:
</tr>

<!--#include virtual="navigation1.shtml" -->

<tr>

Soweit müsste das ja wohl stimmen, der Syntax müsste auch richtig sein.
(Wobei mir der Unterschied zwischen #include virtual und #include file nicht ganz klar ist).

Mein Hoster unterstützt SSI, das habe ich abgeklärt.

Ich habe auch brav folgendes Tutorial versucht abzuarbeiten: Server Side Includes Tutorial - The Template Store

Code:
[B][COLOR=#FF6633]<!--#echo var="DATE_LOCAL" -->[/COLOR][/B]
funktioniert, aber schon die zweite Übung mit "copyright" funktioniert nicht.

Im Tutorial ist von "root directory of your web site" die Rede. Da es sich in meinem Fall um ein Paket mit mehreren Domains handelt, liegt das eigentliche root-Verzeichnis allerdings zwei Ebenen höher, ich habe die .shtml-Datei in den selben Ordner gepackt, in dem die aufrufende .html-Datei liegt. Könnte es am Pfad liegen?

In der .shtml sieht es folgendermaßen aus und da geht es gleich mit den Fragen weiter:

Kein <head>, kein <body>, kein
<html>, soweit klar und der menü-code steht auch ordentlich zwischen <tr> und </tr>, aber brauchts gleich zu Beginn die Zeile:

Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
o. ä. oder lässt man die auch weg?

Und: egal wie ich was umstelle, in der Dreamweaver-Entwurfsansicht wird es mir immer korrekt angezeigt, nur der Upload dann nicht, online passiert schlicht gar nix.


Dann noch: wohin schreibe ich den JavaScript-Teil des Menüs und das CSS?

Will das CSS für das Menü auch auslagern, aber ich habe in der .shtml ja keinen <head>-Bereich, wo ich das unterbringen könnte. Fragen über Fragen, hoffe sehr, es erbarmt sich jemand meiner.

Liebe Grüße von der wimi


 
Vergiss SSI, speichere die Seiten als .php und includiere das Menü dann so:

PHP:
<?php include 'pfad/zur/datei/navigation.php'; ?>

wohin schreibe ich den JavaScript-Teil des Menüs und das CSS?

Die CSS-Datei im Head verlinken und das JavaScript erst, nach dem das Menü im DOM aufgebaut ist. Also entweder am Fuß der Seite oder mit einem $(document).ready() Event.

Ein paar Tipps am Rande:
- Verwende als Doctype entweder XHTML oder HTML5.
- Lösche die Tabellen aus der Datei.
- Lösche Dreamweaver von der Festplatte und installiere eine vernünftige IDE, wie Eclipse, Netbeans oder PHP-Storm.
- Wenn es unbedingt Dreamweaver sein muss, dann um alles in der Welt nicht dieses per Spry-Framework generierte JavaScript.
- Wenn du trotzdem auf Spry bestehst, erwarte keine Antworten. Das verwendet nämlich niemand mehr, der sich mit JavaScript beschäftigt.
 
Hallo Tronjer,

vielen Dank für die prompte Reaktion!

Vielleicht hätte ich noch folgende Infos mitliefern sollen:

Ich benutze immer noch Dreamweaver 8, also nix mit Spry-Framework usw.

Das Navigationsmenü (SuckerTree) ist nur umgestrickt, nicht komplett selbstgebaut, habe nur zwei JavaScript-Angaben und das CSS angepasst.
Der Grund für das neue Menu sind ein paar wenige Seiten auf einer zweiten und dritten Ebene, die es bisher nicht gab.

Ich will/kann kurzfristig keinen kompletten Umbau von HTML auf PHP vornehmen oder mich in einen völlig neuen Editor einarbeiten.

Das Zentralisieren der Navi-Leiste soll mich schnell entlasten, den kompletten Umbau der Seite werde ich demnächst extern vergeben.


Trotzdem nochmals Danke und liebe Grüße von der Wimi



Für alle, die es interessiert: hier noch ein Link:

Eclipse vs NetBeans vs PhpStorm
 
Hallo Tronjer,

habe mich nun doch entschlossen, deinem Rat zumindest teilweise zu folgen und zumindest die Dateien in .php umzubennenen und die Anweisung dann entsprechend als php-Aufruf zu steuern.

Funktioniert prima, danke nochmals!

Tabellen löschen, XHTML/HTML5 usw. muss noch etwas warten, folgt aber mit Sicherheit in naher Zukunft.

Fröhliche Ostergrüße von der Wimi!


 
Zuletzt bearbeitet:
Nicht vergessen: Nur da .php wo auch PHP drin ist. Es kann sonst inperformat werden, wenn der Parser versucht, seiten mit reinem HTML zu interpretieren.

Nils aka XraYSoLo
 
Sorry, das kann ich mir nicht vorstellen. Wieso sollte es einen merkbaren Unterachied machen? Gut, die Datei läuft nicht durch den Parser, das wars aber auch?

Die paar microsekunden machen da glaube ich keinen Unterschied.. Außerdem macht es das ganze uU nur kompliziert wenn eine Datei nachträglich doch PHP braucht.

Jetzt mal abgesehen von extremen Infrastrukturen.
 
Zurück
Oben