verschachtelung von javascript

little magician

Grünschnabel
ich hoffe mir kann jemand bei meinem Problem helfen.

Und zwar möchte ich mithilfe eines Skripts in der html-Datei je nach Uhrzeit unterschiedliche externe .js Dateien aufrufen, mit deren Hilfe dann auflösungsabhängig verschiedene css-Dateien angesprochen werden.

Die Skripte zum ansprechen der css Dateien funktionieren auch einwandfrei, allerdings nicht die uhrzeitabhängige Aufrufe des jeweiligen Skripts. Mein html-interner Code sieht folgendermaßen aus:


<script type="text/javascript">

today = new Date()
if(today.getMinutes() < 10){pad = "0"}
else
pad = "";
if((today.getHours() >=6) && (today.getHours() <=18)){

document.write("<script language="javascript" src="tag.js"></script>")
}

if((today.getHours() >18) && (today.getHours() <6)){

document.write("<script language="javascript" src="nacht.js"></script>")
}

</script>


Das Problem ist, dass die Abarbeitung des Skripts anscheinend stoppt, wenn sie bei der ersten </script> Anweisung ankommt, die ja eigentlich nicht verarbeitet sondern lediglich
eingefügt werden soll.

Was kann ich machen, damit lediglich die letzte </script> Anweisung als solche verarbeitet wird und alles funktioniert? Schonmal danke im Voraus für eure Antworten.
 
irgendwie versteh ich nicht ganz wie du das meinst. Ich habe vor jeder <script...> Anweisung mal \/ eingefügt und es hat irgendwie nichts gebracht.

Er verwendet jedesmal das Design, das ich für nachts festgelegt habe (also die 2te Möglichkeit) und zeigt (was ich wegen dunklem Hintergrund nicht eher gemerkt habe) einen teil des Javascript codes an:

") } if((today.getHours() >18) && (today.getHours() <6)){ document.write("") }
 
bzw das Problem wenn ich vor die zu schreibenden </script> tags ein \ setze ist, dass irgendwie überheupt kein stylesheet mehr geladen wird.
Meine externe .js datei hat folgenden inhalt:

var browser=new Object();

browser.lowres=(screen.height==600);
browser.normalres=(screen.height==768);
browser.highres=(screen.height>768);


if(browser.lowres)
{
document.write('<link rel="stylesheet" href="stylelowtag.css"type="text/css">');
}

if(browser.normalres)
{
document.write('<link rel="stylesheet" href="stylenormaltag.css"type="text/css">');
}

else if (browser.highres)
{
document.write('<link rel="stylesheet" href="stylehightag.css"type="text/css">');
}
 
Du verwendest innerhalb des zu schreibenden Strings doppelte Anführungszeichen, diese musst du dieser entweder escapen...da du den gesamten String bereits in Anführungszeichen hast....
oder setze den kompletten String in Single-Quotes.
Code:
<script type="text/javascript">
<!--
    today = new Date();

    if((today.getHours() >=6) && (today.getHours() <=18))
        {
        document.write('<script type="text\/javascript" src="tag.js"><\/script>');
        }

    else
        {
        document.write('<script type="text\/javascript" src="nacht.js"><\/script>');
        }
//-->
</script>

Ansonsten....ich weiss ja nicht, inwieweit sich die Formate in den 6 CSS-Dateien unterscheiden....
wenn es nicht allzu umfangreich ist, wäre es wahrscheinlich sinnvoller, nur eine einzige CSS-Datei zu verwenden, und die variablen Formate direkt in den <head> zu write()'en. Schliesslich brauchst du ja ohnehin ein Basis-CSS für die Leute mit deaktiviertem JS.
 

Neue Beiträge

Zurück