getElementById und Internetexplorer

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

  • getElementById und Internetexplorer

    Hallo zusammen

    Ich hab da ein "kleines" Problem mit ein wenig JavaScript und dem Internet Explorer.

    Folgendes Szenario:

    Der Besucher einer Homepage klickt im Hauptmenü auf einen Button, daraufhin verschwindet das Hauptmenü und das Untermenü wird angezeigt, gelöst habe ich das so:

    Code:
    function submenue(from,to) 
    {
    	document.getElementById(from).style.display= "none";
    	document.getElementById(to).style.display = "inline";
    }
    In einem Link steht dann:

    Code:
    onClick="submenue('hauptmenue','clanmenue');"
    Safari und Mozilla haben kein Problem damit, es funktioniert dort Tadellos... aber der Internetexplorer zeigt für einen Bruchteil einer Sekunde das Untermenü an und blendet dann sofort wieder das Hauptmenü ein...

    Seht selbst:

    http://www.project-angel.org/funfighters

    Hat jemand eine Idee was ich falsch gemacht habe, resp. was hier falsch läuft?
    Achtung: ich diskutiere gern
    http://www.project-angel.org

  • #2
    könnte ein performance-problem bei ie sein. hab das auch schon mal erlebt, dass der ein wenig schwerfälliger reagiert als andere browser.
    leg vieleicht mal die beiden divs übereinander und arbeite mit visibility.

    gruß
    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Ein return false; im onClick-Handler hat das Problem gelöst
      Achtung: ich diskutiere gern
      http://www.project-angel.org

      Kommentar


      • #4
        Hi,
        habe in etwa das selbe Problem, allerdings mit einem Bild was durchgewechselt werden soll.
        Komme einfach nicht mehr weiter

        PHP-Code:
        <img id="img1" onclick="Klapptext('data', 'img1'); return false;" style="border: 0px none;" src="images/expand.gif">

        <
        div id="data" style="display: none;">
        Klapptext
        </div

        function:
        PHP-Code:
        function Klapptext(idbild) {

                var 
        myObj document.getElementById(id);

                if (
        myObj.style.display == "none") {
                        
        document.getElementById(bild).src "images/collapse.gif";
                        
        myObj.style.display "inline";

                } else {
                        
        document.getElementById(bild).src "images/expand.gif";
                        
        myObj.style.display "none";
                }

        Hab schon einiges probiert aber es will nicht funktionieren...
        Wäre nett wenn das mal jemand kritisch unter die Lupe nimmt

        Kommentar


        • #5
          PHP-Code:
          document.getElementById(bild).setAttribute('src','images/collapse.gif'); 
          Funzt es denn so ??

          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


          • #6
            Original geschrieben von jahlives
            PHP-Code:
            document.getElementById(bild).setAttribute('src','images/collapse.gif'); 
            noe funktioniert leider auch nicht, jemand noch ne idee oder einen fehler gesehen?

            Kommentar


            • #7
              Ich bezweifle, dass das einfache Überschreiben der src-Eigenschaft eines Bildobjektes etwas bewirkt.
              Der übliche Weg ist, erst ein Image-Objekt in JS neu anzuelgen, dessen src die Bildadresse zuzuweisen -> Browser lädt Bild.
              Und dann die src dieses Objektes dem Bild im HTML-Code zuweisen.

              analog http://de.selfhtml.org/javascript/beispiele/buttons.htm
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                Ah ok klingt gut
                Habs auch gleich mal probiert, nämlich so:
                PHP-Code:
                img1 = new Image();
                img1.src 'images/expand.gif';

                img2 = new Image();
                img2.src 'images/collapse.gif';

                function 
                Klapptext(idimg) {
                var 
                myObj document.getElementById(id);

                if (
                myObj.style.display == 'none') {
                myObj.style.display 'inline';
                document.getElementById(img).src img2.src;

                } else {
                myObj.style.display 'none';
                document.getElementById(img).src img1.src;
                }

                Der <img> tag sieht so aus:
                PHP-Code:
                <img id="1" onclick"Klapptext('meineID', 1); return false;" src="image/expand.gif"
                Das is doch die Reihenfolge welche du bzw. selfhtml vorschlagen, nicht wahr?!
                Erst image anlegen -> src dem angelgten image zuweisen -> src dem zu tauschendem Bild übergeben.

                Funktioniert aber leider nicht

                Hab auch mal folgendes aufgenommen:
                PHP-Code:
                alert(document.getElementById(1).src
                dort wird mir die richtige src ausgegeben, aber sie verändert sich nicht!

                Kommentar


                • #9
                  Ich bezweifle, dass das einfache Überschreiben der src-Eigenschaft eines Bildobjektes etwas bewirkt.
                  In meinem Gallery Script (JS) habe ich eine Diashow, die aber genau so funzt. Und zwar so weit ich getestet habe in allen Browsern. Dort setze ich zum Wechseln der Bilder mittels setAttribute('src','neue_src') die Bildquelle neu und der Browser lädt das Bild ohne zu mucken.

                  Also zumindest bei mir geht das.

                  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


                  • #10
                    lol!
                    Bitte zweifelt immer zuerst an meinem Verstand...

                    sowas ist mir ja noch nie passiert!!
                    Ich arbeit hier mit nem vi auf der shell, und da sieht man schliesslich nicht wie die grafik aussieht.
                    Naja ich hab mir die grafik zugeschickt und bin eigentlich davon ausgegangen das es zwei verschiedene sind (also Bilder)
                    ... tja es waren leider beides mal die Grafiken mit dem "+"

                    Und gemerkt hab ich es indem ich nen falschen pfad für des bild (zufällig) eingegeben hab... haha

                    Boah bitte lacht mich jetzt alle aus

                    *rotwerd*

                    edit:
                    funktioniert jetzt natürlich... (mit beiden Varianten)
                    Zuletzt geändert von perfi; 13.10.2005, 13:09.

                    Kommentar


                    • #11
                      Original geschrieben von perfi
                      <img id="1"
                      Das ist keine gültige ID.
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        des war blöderweise von mir eine "dummy-id"
                        In Wirklichkeit wird das Bild ja öfters verwendet und bekommt im Schleifen-Durchlauf immer wieder eine neue Id vom Array zugewiesen.

                        Sprich --> id="img_<? echo array blafasel ?>"
                        diese wird dann auch mit der Funktion natürlich übergeben...

                        Kommentar

                        Lädt...
                        X