IE 6 und setAttribute

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • IE 6 und setAttribute

    Hallo zusammen

    habe ein etwas merkwürdiges Problem mit einem JS und dem IE6. Das JS sollte bei einem div die visibility auf visible setzen, damit das div eingeblendet wird. Im FF und allen anderen Browsern funzt das wunderprächtig nur der IE macht bei mir gar nichts.
    Code:
    function change_attr(div,stat){
       if(stat == 'hide')
       {
           document.getElementById("werbung").setAttribute('style','visibility:hidden')
       }
       else if(stat == 'show')
       {
           document.getElementById("werbung").setAttribute('style',visibility:hidden')
       }
    }
    Die Funktion rufe ich folgendermassen auf:
    <a href="javascript:change_attr('werbung','show')">

    Müsste doch eigentlich funktionieren ? Oder sehe ich das falsch ? Oder gibt es da ne Macke beim IE ?

    Danke und Gruss

    tobi

    p.s. Das Leerzeichen zwischen java und script macht die ForumSW
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

  • #2
    wieso benutzt du nicht einfach die Art von

    document.getElementById(str_id).style.display = 'block';

    ?
    Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
    var_dump(), print_r(), debug_backtrace und echo.
    Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
    Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
    Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

    Kommentar


    • #3
      Werde ich mal ausprobieren...
      Mich wundert es nur, dass der Sch.... IE mal wieder ein eigenes Süppchen kocht

      Danke und Gruss

      tobi
      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

      Kommentar


      • #4
        @Shurakai
        Leider weigert sich der IE auch bei deiner Version irgendetwas anzuzeigen. Hast du sonst noch eine Idee ?
        Ansonsten müsste ich das für den besch.... IE mittels PHP machen und die Seite immer wieder neu laden.

        Danke und Gruss

        tobi
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar


        • #5
          Kurz mal zur Erklärung:

          visibility: hidden/visible
          Setzt ein Element auf sichtbar oder unsichtbar. Unsichtbar bedeutet in diesem Fall vollständig transparent. Das Element ist zwar nicht zu sehen, nimmt aber den Platz ein, der mit den Positionsangaben und Abmessungen festgelegt ist.

          display: none/block
          Das Element ist auch "unsichtbar" - es wird aber kein Platz dafür reserviert. Das heißt, nachfolgende Elemente müssen sich neue ausrichten, wenn das Element angezeigt wird.


          PS: Der obere Text stammt aus css4you

          Kommentar


          • #6
            @prego
            Das Element ist bei mir position:absolute. Daher sollten beide Versionen funzen. Tun sie aber leider ned.

            Gruss

            tobi
            Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

            [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
            Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

            Kommentar


            • #7
              Hmm, ok....

              wollte es auch nur mal klarstellen, da viele es verwechseln...

              Hast du die Seite mal auf nem Link?

              Kommentar


              • #8
                @prego
                Hier also das Problem
                Ein Klick auf PageNews sollte das div hervorbringen (geht auch in allen Browsern bis auf ***IE)

                Danke und Gruss

                tobi
                Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                Kommentar


                • #9
                  Warum benutzt du SetAttribute()? Erklär mal, ernsthaft.

                  PHP-Code:
                  document.getElementById(div).style.visibility 'visible'
                  sollte es tun - damit funzts auch auf beiden.

                  siehe auch:
                  http://de.selfhtml.org/javascript/ob..._eigenschaften

                  Kommentar


                  • #10
                    der IE stellt sich bei setAttribute oftmals quer, wenn er mit einer anderen schreibweise direkten zugriff auf die gewünschte eigenschaft hat. (in diesem falle also über style.)

                    darüber hinaus erscheint es mir in so einem falle auch viel sinnvoller, das style-objekt zu benutzen, als über setAttribute zu gehen. die methode ist m.E. eigentlich eher beim erzeugen neuer elementknoten angebracht. (auch wenn sich der IE da teilweise auf die selbe art und weise quer stellt.)
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar


                    • #11
                      @prego
                      Vielen Dank. So funzt wenigstens das Anzeigen und "Schliessen" des divs. Jetzt stellt der IE dieses div aber noch falsch dar. Der z-index des divs ist 1 und doch scheint der Hintergrund durch. Ausserdem wird die Hintergrundfarbe im IE noch ignoriert.
                      Aber ich bin schon weiter als vorher. Und diese letzte Macke werde ich dem IE noch austreiben.

                      Danke für Deine Hilfe
                      Gruss

                      tobi
                      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                      Kommentar


                      • #12
                        @prego
                        Jetzt wird das div auch im IE korrekt angezeigt. Hatte als background-color:grey anstatt gray drinnen. Komischerweise interpretieren alle anderen Browser sowohl grey als auch gray.

                        Nochmals danke und Gruss

                        tobi
                        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                        Kommentar


                        • #13
                          Original geschrieben von jahlives
                          Komischerweise interpretieren alle anderen Browser sowohl grey als auch gray.
                          OffTopic:
                          Zur Erklärung: grey = british english, gray = american english. Nur so nebenbei
                          Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
                          var_dump(), print_r(), debug_backtrace und echo.
                          Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
                          Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
                          Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

                          Kommentar


                          • #14
                            Sorry, dass ich nochmals mit dem gleichen komme.
                            Auf einer Seite mit einer option-Auswahl wird diese über den div gelegt (obwohl der div z-index:1 hat).
                            Der Rest des Formulars (z.B. der Submit Button wird korrekt verdeckt). Und wiedermal: Alle anderen Browser interpretieren das korrekt.
                            Habe mal einen ScreenShot der Seite im IE angefügt, damit ihr Euch ne Vorstellung machen könnt was ich meine.

                            Danke und Gruss


                            tobi
                            Angehängte Dateien
                            Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                            [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                            Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                            Kommentar


                            • #15
                              Die Steuerelemente des IE kommen vom Betriebssystem. Du wirst sie nicht verdecken können.

                              Was du machen kannst ist das DIV in dem sich die Steuerelement (select) befinden verstecken, bevor du das andere anzeigst.

                              Kommentar

                              Lädt...
                              X