Patrick: 2 Probleme mit dem IE und 1 mit DOM

Hallo allerseits!
Ich habe drei Probleme. Ich hoffe ihr könnt mir helfen! :-)
1.) Ich würde gerne erreichen, dass der IE Alphatransparenz kann. Das geht doch soweit ich weiß mit JavaScript, oder? Ich habe dieses JavaScript aber nicht gefunden. Kann mir bitte jemand den Link posten? Vielen Dank!

2.) Wie bringe ich den IE dazu ein DIV auf 100% der Höhe und Breite der _gesamten_ Seite zu bringen? Ich füge es über DOM so ein:

var all = document.getElementsByTagName("body")[0];
all.appendChild(div);

Ich weise dem DIV die ID "login" hinzu. Und dann gebe ich dem DIV die Höhe und Breite 100%. Der IE weigert sich mit dem DIV die komplette Seite auszufüllen. Wie zwinge ich ihn dazu? Der FF, Netscape und Opera machen es richtig.

3.) Ich füge (wie oben gezeigt) ein DIV ein. Dem neu angelegten DIV habe ich die ID "login" gegeben. Und dies möchte ich mit einer Funktion wieder entfernen. Aber ich bekomme das nicht so hin, wie es sein soll.

var node = document.getElementById("login").firstChild;
verschwunden = document.getElementsByTagName("body")[0].removeChild(node);

Das endet in einer bösen Fehlermeldung der JavaScript-Konsole. Was muss ich verändern?
Vielen Dank für euer Bemühen! Danke schön!
bis dann, Pati

  1. 2.) Wie bringe ich den IE dazu ein DIV auf 100% der Höhe und Breite der _gesamten_ Seite zu bringen? Ich füge es über DOM so ein:

    Ein DIV als Blockelement nimmt immer die gesamte Breite ein (minus einem evtl. vorhandenen margin und padding des Elternelementes)

    Wenn es die Höhe 100% hat nimmt es ebenfalls die Höhe Elternelementes an, wenn dies keine Angabe hat hat es i.d.R. die Höhe des Inhaltes.
    du musst also dem Elternelement eine Höhe geben.

    Wobei ich das aber nicht machen würde, wenn du sowieso schon mit JS arbeitest kannst du die Höhe auch mit JS ermitteln und entsprechend sezten.

    var all = document.getElementsByTagName("body")[0];

    document.body existiert auch.

    3.) Ich füge (wie oben gezeigt) ein DIV ein. Dem neu angelegten DIV habe ich die ID "login" gegeben. Und dies möchte ich mit einer Funktion wieder entfernen. Aber ich bekomme das nicht so hin, wie es sein soll.

    var node = document.getElementById("login").firstChild;
    verschwunden = document.getElementsByTagName("body")[0].removeChild(node);

    du willst den Knoten entfernen nicht dessen Inhalt.

    Struppi.

    --
    Javascript ist toll (Perl auch!)
    1. Hallo!

      2.) Wie bringe ich den IE dazu ein DIV auf 100% der Höhe und Breite der _gesamten_ Seite zu bringen? Ich füge es über DOM so ein:

      Ein DIV als Blockelement nimmt immer die gesamte Breite ein (minus einem evtl. vorhandenen margin und padding des Elternelementes)

      Wenn es die Höhe 100% hat nimmt es ebenfalls die Höhe Elternelementes an, wenn dies keine Angabe hat hat es i.d.R. die Höhe des Inhaltes.
      du musst also dem Elternelement eine Höhe geben.

      Wobei ich das aber nicht machen würde, wenn du sowieso schon mit JS arbeitest kannst du die Höhe auch mit JS ermitteln und entsprechend sezten.

      Vielen Dank!

      var all = document.getElementsByTagName("body")[0];

      document.body existiert auch.

      Danke schön. Das ist einfacher.

      3.) Ich füge (wie oben gezeigt) ein DIV ein. Dem neu angelegten DIV habe ich die ID "login" gegeben. Und dies möchte ich mit einer Funktion wieder entfernen. Aber ich bekomme das nicht so hin, wie es sein soll.

      var node = document.getElementById("login").firstChild;
      verschwunden = document.getElementsByTagName("body")[0].removeChild(node);

      du willst den Knoten entfernen nicht dessen Inhalt.

      Sorry. Entweder ich bin total bescheuert oder blind. Aber ich finde hier nichts womit ich den Knoten entfernen kann.
      Womit muss ich das machen?
      ciao, Pati

      1. hi,

        var node = document.getElementById("login").firstChild;
        verschwunden = document.getElementsByTagName("body")[0].removeChild(node);

        du willst den Knoten entfernen nicht dessen Inhalt.
        Sorry. Entweder ich bin total bescheuert oder blind. Aber ich finde hier nichts womit ich den Knoten entfernen kann.
        Womit muss ich das machen?

        Mit removeChild, das ist die richtige Methode.
        Aber du willst nicht das firstChild von deinem Element mit der ID "login" entfernen, sondern dieses Element selber - also übergibst du die Referenz darauf als Parameter an die Methode.

        Die "böse Fehlermeldung" bekommst du, weil du ein Kind aus einem Element zu entfernen versucht hast, welche gar nicht sein Parent ist.

        var node = document.getElementById("login").firstChild;

        Wenn du dieses Element entfernen wolltest, müsstest du es aus dem Element mit der ID "login" entfernen - denn dessen Kind ist es, und nicht Bodys.

        Generell kannst du solche Fehler vermeiden, wenn du dir das Element, aus dem zu entfernen ist, über die parentNode-Eigenschaft des Elementes, welches entfernt werden soll, besorgst.

        var zuEntfernendesElement = ...;
        zuEntfernendesElement.parentNode.removeChild(zuEntfernendesElement);

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. Cool! Danke schön! Es klappt.
          cu, Pati

      2. n'abend,

        .oO( eigentlich könnte man diese Standardvorgehensweise auch mal in die Dokumentation zu Node.removeChild() aufnehmen )

        Sorry. Entweder ich bin total bescheuert oder blind. Aber ich finde hier nichts womit ich den Knoten entfernen kann.

        deineNode.parentNode.removeChild( deineNode );

        removeChild löscht, wie der Name schon sagt, ein Kindknoten, nicht den Knoten selbst. Eine Node ist in den meisten Fällen ein Kindknoten einer anderen Node, weshalb es recht einfach ist, einfach auf diesen Elternknoten zuzugreifen und von diesem aus, das Kind zu löschen.

        weiterhin schönen abend...

        --
        Freundlich wie man war, hat man mir Großbuchstaben geschenkt.
        sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|
    2. hi,

      Wobei ich das aber nicht machen würde, wenn du sowieso schon mit JS arbeitest kannst du die Höhe auch mit JS ermitteln und entsprechend sezten.

      Mittels Javascript würdest du wohl einen Pixelwert ermitteln, und diesen setzen.
      Pixel bleibt Pixel, auch wenn der Nutzer jetzt die Fenstergröße ändert.
      100% wären auch 100% geblieben - hätten sich aber dynamisch angepasst ;-)

      gruß,
      wahsaga

      --
      /voodoo.css:
      #GeorgeWBush { position:absolute; bottom:-6ft; }
      1. Pixel bleibt Pixel, auch wenn der Nutzer jetzt die Fenstergröße ändert.
        100% wären auch 100% geblieben - hätten sich aber dynamisch angepasst ;-)

        onresize existiert und du kennst die Problematik mit height:100%

        Struppi.

        --
        Javascript ist toll (Perl auch!)
        1. hi,

          onresize existiert

          Browserübergreifend?

          gruß,
          wahsaga

          --
          /voodoo.css:
          #GeorgeWBush { position:absolute; bottom:-6ft; }
  2. Einen schönen guten Mittag.

    1.) Ich würde gerne erreichen, dass der IE Alphatransparenz kann. Das geht doch soweit ich weiß mit JavaScript, oder? Ich habe dieses JavaScript aber nicht gefunden. Kann mir bitte jemand den Link posten? Vielen Dank!

    Wieso willst du das mit Javascript machen? Wieso willst du kein CSS benutzen? Alphatransparenz kannst du im IE mit http://de.selfhtml.org/css/eigenschaften/filter.htm#alpha@title=Filtern und in anderen Browsern mit opacity erreichen.

    So long,
    Oku

    1. Hey!
      Und wie schaffe ich das mit Hintergrundbildern? Weil da habe ich schließlich kein IMG-Tag in dem ich ein style-Attribut einfügen könnte.
      ciao! Pati

      1. Einen schönen guten Nachmittag.

        Und wie schaffe ich das mit Hintergrundbildern? Weil da habe ich schließlich kein IMG-Tag in dem ich ein style-Attribut einfügen könnte.

        Und wie schaffe ich es zu verstehen, was du machen willst? Mmh.. Ich könnte nachfragen. Das wäre eine Idee: Was willst du denn schaffen? Was verstehst du nicht?

        http://community.de.selfhtml.org/zitatesammlung/zitat594

        So long,
        Oku

        1. Ich würde gerne wissen, wie ich einen solchen Filter auf Hintergrundbilder anwenden kann. Ich binde das transparente Bild als Hintergrundbild ein.
          ciao, Pati!