schnoedel: media:print in linestyles?

Hallo,
ich möchte mit Javascript dynamisch ein Inlinestyle in ein Element schreiben der dur für drucker gilt(@media print).ich muss Inlinestyles verwenden, weil es im Internet-Explorer sonst nciht funktioniert.

Könnt ihr mir helfen?

  1. Hi,

    ich möchte mit Javascript dynamisch ein Inlinestyle in ein Element schreiben der dur für drucker gilt(@media print).

    das ist derzeit nicht möglich.

    ich muss Inlinestyles verwenden, weil es im Internet-Explorer sonst nciht funktioniert.

    Dies zweifle ich an.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. danke für die superschnelle Antwort!

      ich muss Inlinestyles verwenden, weil es im Internet-Explorer sonst nciht funktioniert.

      Dies zweifle ich an.

      ich habe sowohl hier als auch bei einem anderen Projekte versucht, durch Klassenzuweisungen Style-Änderungen (z.B. display: block / none oder Änderungen bei margin etc. ) bei Elementen hervorzurufen. Das klappte auch im FF, im IE aber nicht. Ich meine auch, von diesem Problem schonmal gehört zu haben.

      Vielleicht gibt es dazu eine Lösung die ich nicht kenne?

      1. Hi,

        ich habe sowohl hier als auch bei einem anderen Projekte versucht, durch Klassenzuweisungen Style-Änderungen (z.B. display: block / none oder Änderungen bei margin etc. ) bei Elementen hervorzurufen. Das klappte auch im FF, im IE aber nicht.

        "klappt nicht" ist keine Problembeschreibung. Was für Klassenzuweisungen gibt es eigentlich im Bereich von CSS?

        Ich meine auch, von diesem Problem schonmal gehört zu haben.

        Es gibt mehrere Probleme, die der IE hat[1], aber ein derart allgemeines, wie Du es beschreibst, ist mir nicht bekannt.

        Vielleicht gibt es dazu eine Lösung die ich nicht kenne?

        Kommt darauf an für welches Problem.

        Cheatah

        [1] Ich nominiere mich selbst hiermit für den "Understatement of the Week"-Award.

        --
        X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. "klappt nicht" ist keine Problembeschreibung. Was für Klassenzuweisungen gibt es eigentlich im Bereich von CSS?

          Folgender Versuchsaufbau:

          Eine html-Datei mit diesem Inhalt:

          <div id="ziel">Ich geh hier nicht weg</div>

          ein verlinktes .css-Stylesheet mit der Regel

          .invis {display:none}

          eine verlinkte .js-Datei mit diesem Inhalt:

            
          function verschwinde() {  
          var zieldiv = document.getElementById("ziel");  
          zieldiv.setAttribute ("class","invis");  
          alert(zieldiv.getAttribute("class"));  
          }  
          window.onload=verschwinde;  
          
          

          Die Klasse "invis" soll also dynamisch an den div vergeben werden und alles mit der Klasse invis wird per der css-Regel ausgeblendet.

          Der Alert bestätigt auch im IE, dass die Klasse richtig vergeben wurde (sofern ich grade keinen Schreibfehler eingebaut habe).

          Im Firefox wird der div daraufhin unsichtbar, im IE nicht.

          Wenn ich statt der Klasse aber einen inline-Style vergebe

          zieldiv.style.display="none";

          verschwindet der div auch im IE, weswegen ich das bisher einfach so gelöst habe. In diesem Fall soll sich aber auf dem Bildschirm nichts ändern sondern nur auf Ausdrucken. Das kann man in externen Styles mit media-Angaben wie

          @media print{.invis {display:none;}}

          erreichen. Und damit wären wir wieder bei meiner Ausgags-Frage: Kann man "media" irgendwie auch in inline-Styles benutzen? Und wenn ja, wie weist man das per javascript korrekt zu?

          1. Hi,

            .invis {display:none}

            ist "invis" der Plural von "invi"? Wenn nicht, und wenn es statt dessen eine Kurzform von "invisible" sein soll, dann ist dieser Klassenbezeichner nicht im Sinne von HTML.

            zieldiv.setAttribute ("class","invis");

              
            Ja, \_da\_ kommt der IE tatsächlich nicht mit. Bei der Verwendung der className-Eigenschaft hat er jedoch keine Probleme.  
              
            
            > Der Alert bestätigt auch im IE, dass die Klasse richtig vergeben wurde (sofern ich grade keinen Schreibfehler eingebaut habe).  
              
            Richtig vergeben, ja. Er wendet sie nur nicht mehr an. Ähnliches gilt auch für Event-Handler: Er konvertiert keine nachträglich hinzugefügten Attribute in solche.  
              
            
            > Und damit wären wir wieder bei meiner Ausgags-Frage: Kann man "media" irgendwie auch in inline-Styles benutzen?  
              
            Diese Frage meine ich beantwortet zu haben.  
              
            Cheatah  
            
            -- 
            X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|  
            X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html  
            X-Will-Answer-Email: No  
            X-Please-Search-Archive-First: Absolutely Yes
            
            1. Ja, _da_ kommt der IE tatsächlich nicht mit. Bei der Verwendung der className-Eigenschaft hat er jedoch keine Probleme.

              Jaaaa, super \o/! Danke euch beiden, className war mir bisher unbekannt und löst natürlich mein Problem und macht Javascript insgesamt deutlich angenehmer.

              ist "invis" der Plural von "invi"? Wenn nicht, und wenn es statt dessen eine Kurzform von "invisible" sein soll, dann ist dieser Klassenbezeichner nicht im Sinne von HTML.

              invis ist tatsächlich die Abkürzung für invisible. Ich bin absolut für semantische Benennungen und nutze sie in der Regel auch, denke aber dass es für dieses kleine Beispiel (der tatsächliche Code sieht anders aus) in Ordnung geht :).

              Abgesehen davon fällt mir gerade für so was wie diesen sichtbar/unsichtbar- Umschalter jetzt nicht wirklich eine bessere Klassenbezeichnung ein. Wärest Du mit "ueberfluessig" einverstanden?

              Im tatsächlichen Projekt verwende ich "noPrint", da es nicht gedruckt werden soll. Was hältst Du davon?

          2. Mahlzeit schnoedel,

            zieldiv.setAttribute ("class","invis");

            Dafür gibt es die Eigenschaft http://de.selfhtml.org/javascript/objekte/htmlelemente.htm#universaleigenschaften@title=className.

            MfG,
            EKKi

            --
            sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|