Liebe gaby,
ich hab's. Pass auf!
Auf http://gaby77.ga.funpic.de/forum/fr/js-zurueck-link/Felix-1/unterseite.html befindet sich folgender Code:
<script type="text/javascript">
if (history.length<2)
{ document.write(
<style type=text/css>
.weiter {display: none;}
</style>)
}
</script>
<noscript>
<style type=text/css>
.weiter {display: none;}
</style>
</noscript>
<body>
Zunächst fällt mir auf, dass der <head> nicht korrekt geschlossen wurde. Das allein ist schoneinmal nicht unproblematisch!
Was macht Dein Script??? Schauen wir es uns nocheinmal genauer an:
if (history.length<2)
{ document.write(
<style type=text/css>
.weiter {display: none;}
</style>)
}
Da steht in der if-Verzweigung (die auch völlig korrekt angesprungen wird) eine document.write()-Anweisung. Wie diese korrekt zu benutzen ist, muss Dir in diesem Beispiel entgangen sein, denn Du notierst den String nicht als solchen! Alles innerhalb der Klammern wird nicht "verstanden". Daher kann Dein Script so nicht korrekt arbeiten! Das Syntaxhighlighting hier lässt das Problem schon erahnen.
Lösung? Anführungszeichen (einfache)! Also probieren wir das hier:
if (history.length<2)
{ document.write('
<style type=text/css>
.weiter {display: none;}
</style>')
}
Aber auch das gibt Probleme. Das wichtigste Problem ist die Zeichenfolge "</" beim Schließen des Style-Tags im String. Das haut manchen Browser raus. Es muss also escaped werden: </style>.
Damit ist es aber noch nicht genug! Ein String kann in Javascript nicht über mehrere Zeilen hinweg notiert werden! Schreibe daher entweder alles in eine Zeile oder "addiere" die Zeilen Deines Strings zusammen!
Schau her:
if (history.length<2)
{ document.write(''
+' <style type=text/css>'
+' .weiter {display: none;}'
+' <\/style>')
}
Die Farben des Syntaxhighlightings zeigen schon an, dass anscheinend alles in Ordnung ist.
Meine bevorzugte Lösung:
<script type="text/javascript">
if (history.length < 2)
document.write('<style type="text/css">.weiter a {display: none;}<\/style>');
</script>
Liebe Grüße aus Ellwangen,
Felix Riesterer.