Klaus: / (Browser) Problem mit Opera

Hallo!
Ich habe eine ganz einfache Funktion geschrieben, die während ein Bild lädt ein animiertes Gif zeigt. Dann wird per onload-Tag im zuladenden Bild eine Funktion aufgerufen, die das Gif verschwinden lässt und das geladene Bild anzeigt.
Das zuladende Bild hat ein display:none. Und deswegen wird es von Opera nicht geladen. D.h. dass der onload-Befehl ins leere läuft. Kann ich Opera dazubringen das Bild trotzdem zu laden? Oder gibt es einen JS-Hack, der nur für Opera ist? Ich habe es schon mit width:0 und height:0 versucht, aber dann bekomme ich in allen Browsern immense Folgefehler. Das wäre dann mit Kanonen auf Spatzen... :)
Thx for help. Gruß, Klaus

  1. Ich habe eine ganz einfache Funktion geschrieben, die während ein Bild lädt ein animiertes Gif zeigt. Dann wird per onload-Tag im zuladenden Bild eine Funktion aufgerufen, die das Gif verschwinden lässt und das geladene Bild anzeigt.

    Es gibt keinen onload Tag.

    Und Opera sollte keine Problme haben mit:

    var img = new Image();  
    img.onload = function() { alert('Fertig.'); };  
    img.src = '....';  
    
    

    Struppi.

    --
    Javascript ist toll (Perl auch!)
    1. Hallo!
      Danke für deine Hilfe!

      Es gibt keinen onload Tag.

      Und was ist mit dem hier:

      <img onload="alert('Hallo')" src="foo.jpg" width="200" height"300">

      Ist das etwa falsch? Dann würden, IE, FF und NN es falsch machen!?

      Thx Klaus

      1. Hallo Klaus.

        Es gibt keinen onload Tag.

        Und was ist mit dem hier:

        <img onload="alert('Hallo')" src="foo.jpg" width="200" height"300">

        Hierbei handelt es sich um ein img-Element, welches ein onload-Attribut enthält.

        Ein onload-Tag sähe so aus:

        <onload>

        Und einen solchen gibt es in den gängigen HTML-Dialekten nun einmal nicht.

        Einen schönen Sonntag noch.

        Gruß, Mathias

        --
        ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
        debian/rules
        1. Ups. Da hab ich doch glatt Attribut und Tag verwechselt.
          Sorry.
          Klaus

          1. Hallo,

            Ups. Da hab ich doch glatt Attribut und Tag verwechselt.

            Ja, aber ein onload-Attribut gibt es im <img>-Tag auch nicht. Das machen Fx und IE einfach falsch. Siehe http://de.selfhtml.org/html/referenz/attribute.htm#img

            Grüße
            Jeena Paradies

            --
            Pavatar Zwischenstand Gravatar ist ja wieder kaputt | Jlog | Gourmetica Mentiri
            1. Hallo,

              ein onload-Attribut gibt es im <img>-Tag auch nicht.

              Doch, es ist nur nicht standardisiert. Jedenfalls passiert beim img-Elementknoten ein load-Event.

              Mathias

              1. Hallo,

                Doch, es ist nur nicht standardisiert. Jedenfalls passiert beim img-Elementknoten ein load-Event.

                In praktisch allen Browsern? Das müsste ich doch wirklich glatt mal ausprobieren ...

                ... in den browsern die ich habe stimmt das sogar, nett. Dann wird es Zeit für die Standardisierung.

                Grüße
                Jeena Paradies

                --
                Pavatar Zwischenstand Gravatar ist ja wieder kaputt | Jlog | Gourmetica Mentiri
                1. ... in den browsern die ich habe stimmt das sogar, nett. Dann wird es Zeit für die Standardisierung.

                  in Netscape 3 und IE 4 hat das auch schon funktioniert, bei Opera weiß ich nicht ab welcher Version.

                  Struppi.

                  --
                  Javascript ist toll (Perl auch!)
                  1. ... in den browsern die ich habe stimmt das sogar, nett. Dann wird es Zeit für die Standardisierung.

                    in Netscape 3 und IE 4 hat das auch schon funktioniert, bei Opera weiß ich nicht ab welcher Version.

                    Überhaupt nicht :(
                    Grüße, Klaus

                    1. Hallo Klaus.

                      ... in den browsern die ich habe stimmt das sogar, nett. Dann wird es Zeit für die Standardisierung.

                      in Netscape 3 und IE 4 hat das auch schon funktioniert, bei Opera weiß ich nicht ab welcher Version.
                      Überhaupt nicht :(

                      Doch, tut es.

                      Einen schönen Sonntag noch.

                      Gruß, Mathias

                      --
                      ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
                      debian/rules
                      1. Hallo,

                        Doch, tut es.

                        Bei mir in der 9er Version auf jeden Fall auch.

                        Grüße
                        Jeena Paradies

                        --
                        Pavatar Zwischenstand Gravatar ist ja wieder kaputt | Jlog | Gourmetica Mentiri
                        1. Hallo Jeena.

                          Doch, tut es.
                          Bei mir in der 9er Version auf jeden Fall auch.

                          Angemerkt sei jedoch, dass der onload-Eventhandler nur dann feuert, wenn er direkt im HTML notiert wurde. Weder per addEventListener/attachEvent noch per setAttribute noch per Direktzuweisung wird die an den load-Event gekoppelte Funktion ausgeführt.

                          Einen schönen Sonntag noch.

                          Gruß, Mathias

                          --
                          ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
                          debian/rules
                          1. Hallo nochmal.

                            Doch, tut es.
                            Bei mir in der 9er Version auf jeden Fall auch.

                            Angemerkt sei jedoch, dass der onload-Eventhandler nur dann feuert, wenn er direkt im HTML notiert wurde. Weder per addEventListener/attachEvent noch per setAttribute noch per Direktzuweisung wird die an den load-Event gekoppelte Funktion ausgeführt.

                            Dies gilt für alle Browser.

                            Einen schönen Sonntag noch.

                            Gruß, Mathias

                            --
                            ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
                            debian/rules
                            1. Doch, tut es.
                              Bei mir in der 9er Version auf jeden Fall auch.

                              Angemerkt sei jedoch, dass der onload-Eventhandler nur dann feuert, wenn er direkt im HTML notiert wurde. Weder per addEventListener/attachEvent noch per setAttribute noch per Direktzuweisung wird die an den load-Event gekoppelte Funktion ausgeführt.

                              Dies gilt für alle Browser.

                              Bei mir gilt das bei keinem Browser:

                              var img = new Image();  
                              img.onload = function()  
                              {  
                              alert('fertig.');  
                              }  
                              img.src = 'test.jpg';  
                              
                              

                              Funktioniert in allen Browsern die ich habe.

                              var img = new Image();  
                              img.addEventListener('load', function() { alert('fertig.'); }, true );  
                              img.src = 'test.jpg';  
                              
                              

                              Funktioniert im FF 1.5

                              var img = new Image();  
                              img.attachEvent('onload', function() { alert('fertig.'); });  
                              img.src = 'test.jpg';  
                              
                              

                              Funktioniert im IE 6.

                              Hast du vielleicht ein nicht vorhandenes Bild benutzt?

                              Struppi.

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

                                Hast du vielleicht ein nicht vorhandenes Bild benutzt?

                                Nein, nur gänzlich ohne das Image-Objekt getestet.

                                Einen schönen Montag noch.

                                Gruß, Mathias

                                --
                                ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
                                debian/rules
                    2. ... in den browsern die ich habe stimmt das sogar, nett. Dann wird es Zeit für die Standardisierung.

                      in Netscape 3 und IE 4 hat das auch schon funktioniert, bei Opera weiß ich nicht ab welcher Version.
                      Überhaupt nicht :(

                      Quatsch, spätestens in OP 6, wenn nicht sogar schon in 5 geht das (ich hab nur den 7'er da und da klappt das einwandfrei)

                      Struppi.

                      --
                      Javascript ist toll (Perl auch!)
                      1. Hallo!
                        Vielen Dank für eure Anteilnahme! Aber ich habe etwas ausprobiert, das in allen Browsern, bis auf Opera funktioniert. Hier der Code:

                        <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

                        <html>
                        <head>
                         <title>Untitled</title>
                        <script type="text/javascript">
                        function show(){
                         document.getElementById("pic").style.display = "block";
                         document.getElementById("load").style.display = "none";
                        }
                        </script>
                        </head>

                        <body>
                        <img src="loading.gif" width="126" height="22" id="load" alt="" style="display:block;">
                        <img src="pics/2.jpg" height="450" width="600" id="pic" alt="" style="display:none" onload="show()">
                        </body>
                        </html>

                        Das funktioniert beim besten Willen mit Opera nicht. Warum? Vielen Dank für die Hilfe! Klaus

                        1. Vielen Dank für eure Anteilnahme! Aber ich habe etwas ausprobiert, das in allen Browsern, bis auf Opera funktioniert. Hier der Code:

                          Ich hab grad keinen da zum testen, aber ich vermute es liegt einfach display:none, evtl. wird das Bild auch gar nicht geladen, was ja konsequent wäre. was passiert wenn du display:none nicht als inline style verwendest oder visibility oder width und height auf 0 setzt?

                          Struppi.

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

                            Was passiert wenn du display:none nicht als inline style verwendest oder visibility oder width und height auf 0 setzt?

                            Mit visibility klappt es hervorragend und wird komplett geladen. Danke schön!
                            Grüße, Klaus

  2. Nur der Heino und die Hannelore benutzen noch Opera, alle anderen benutzen den Internet-Explorer oder den Firefox.

    Aber im Ernst, man sollte sich darauf konzentrieren, daß man für gängige Browser, Betriebssysteme und Auflösungen programmiert und das heißt zur Zeit: Internet Explorer oder Firefox, Microsoft und 1024x768 Pixel.

    Damit hat man eine Abdeckung von min. 95% und außerdem wird es bei den meisten "Exoten" dennoch richtig angezeigt.

    ...und sollte mal ein User mit Opera, Linux und 800x600 Pixel kein
    Bild angezeigt bekommen, dann ist es auch nicht so tragisch.

    1. Hallo!

      ...und sollte mal ein User mit Opera, Linux und 800x600 Pixel kein
      Bild angezeigt bekommen, dann ist es auch nicht so tragisch.

      Sorry, aber mit der Aussage bist du gerade voll ins Fettnäpfchen getreten! ;-P Ich benütze Opera auf Windows und Linux. Das mit dem 800x600 ist bei mir zwar relativ selten, kann aber auch mal vorkommen. Insofern finde ich es schon tragisch...
      Gruß, Klaus

      1. :-)

        Ja, häufig verwenden Spezialisten spezielle Kombinationen. Ich kenne aber so viele Leute die keinen blassen Schimmer von Computer haben und bei denen ist meistens alles "Standard".

        Google mal "webstats" oder so ähnlich, es gibt ne ganze Reihe von Websiten die sich genau damit beschäftigen wer, was und wie benutzt.

      2. http://www.webhits.de/deutsch/index.shtml?webstats.html