Sen: CSS-Datei mit JavaScript einbinden?

Moin, moin,
Mein Problem ist folgendes:
Ich muss von einer Seite eine Druckansicht zur Verfügung stellen (Die auch in NS 4.x funktioniert). Dazu möchte ich einfach das Menü ausblenden (display:none), denn dann passt die Seite auch auf den Drucker.
Kann ich beim laden der Seite mit Hilfe von JS die entsprechende CSS-Datei einbinden?
Oder kennt ihr einen besseren Weg?

Sen

  1. Moin, moin,
    Mein Problem ist folgendes:
    Ich muss von einer Seite eine Druckansicht zur Verfügung stellen (Die auch in NS 4.x funktioniert). Dazu möchte ich einfach das Menü ausblenden (display:none), denn dann passt die Seite auch auf den Drucker.
    Kann ich beim laden der Seite mit Hilfe von JS die entsprechende CSS-Datei einbinden?
    Oder kennt ihr einen besseren Weg?

    Sen

    Es ist prinzipiell mit JavaScript möglich ala
    <script language="Javascript" type="text/javascript">
    <!--
    if (document.layers) {
     document.write ("<link rel="STYLESHEET" href="forNN4.css" type="text/css">");
     }
    else   document.write ("<link rel="STYLESHEET" href="all.css" type="text/css">");
    //-->
    </script><noscript>
    <link rel="STYLESHEET" href="all.css" type="text/css">
    </noscript>

    da im NN4 CSS nur mit aktivem Javascript funktioniert, kannst du das so machen. Ohne dein Problem aber genauer zu kennen, gibt es auch die Möglichkeiten, einzelne Browser von CSS fernzuhalten, siehe
    http://pixels.pixelpark.com/~koch/hide_css_from_browsers/

    1. @Vimes: Bist du aus HH ?? (Wenn ja siehe meine Mailaddi).

      Es ist prinzipiell mit JavaScript möglich ala
      <script language="Javascript" type="text/javascript">
      <!--
      if (document.layers) {
       document.write ("<link rel="STYLESHEET" href="forNN4.css" type="text/css">");
       }
      else   document.write ("<link rel="STYLESHEET" href="all.css" type="text/css">");
      //-->
      </script><noscript>
      <link rel="STYLESHEET" href="all.css" type="text/css">
      </noscript>

      So funktioniert das leider noch nicht. Ich versuche mit der ganzen Sache zu umgehen, dass ich jede Seite doppelt auf dem Server speichern muss. Der Server kann leider kein PHP, somit fällt diese Möglichkeit leider weg.
      Vielleicht liegts ja auch am CSS:
      Wenn ich das div id=navigation ausblenden will (ohne Platzhalter) muss ich das in der entsprechenden CSS-Datei doch über #navigation definieren, oder?

      1. hallo, Vimes

        dir geht es ja eigentlich nicht darum ein anderes css einzubinden sondern die navigation und auch deren platz auszublenden.

        du musst über eine variable der seite klar machen ob sie sich mit oder ohne navi anzeigen soll.

        da hast du drei möglichkeiten:
        1. du gibst die var wie folgt mit:

        deine_seite.htm?druck

        in der deine_seit.htm liest du sie über window.location.search wieder aus.

        2. du setzt den name des fenster window.name auf "druck" und liest es nachher in deine_seite.htm wieder aus.

        3. wenn du ein frameset verwendest kannst du eine globale variable auf der framsetebene auf "druck" setzen und die dann abfragen.

        somit ist der code in deine_seite.htm z.bsp. mit der ersten version.

        if (window.location.search == "?druck")
        {
            html = "... code für navi ...";

        document.write(html);
        }

        das sollte doch so funktionieren.

        gruss, LenaLuna