carsten schlichting: js_und gif_Logik in IE und netscape verschieden?

Hallo

habe eine Frage zur Interpretation von JS in den browsern.

Und zwar habe ich beobachtet, das ein mouseover verschieden reaktionen in den Browsern hervorruft.
Das mouseOver ruft eine funktion auf, die ein image mit einem animierten gif ersetzt.

Im IE und opera wird , wenn die Funktion durch eine 2.schaltfläche aufgerufen wird, das abspielen des 1. gif unterbrochen und unmittelbar die Funktion wieder aufgerufen.

im Netscape treten extreme verzögerungen auf.

hat jemand so ähnliche erfahrungen gemacht?

oder liegt das eventuell nur an meiner testserver-konfiguartion: windowsXP mit dem xampp testserver:
bei allen rolloverbildern ( auch bei css-rollover_bildern springt beim netscape/mozilla, die Festplatte an)

das problem habe ich schon seit monaten und kann es nicht lösen.

grüße von mir

carsten

  1. Hallo,

    Das mouseOver ruft eine funktion auf, die ein image mit einem animierten gif ersetzt.

    Im IE und opera wird , wenn die Funktion durch eine 2.schaltfläche aufgerufen wird, das abspielen des 1. gif unterbrochen und unmittelbar die Funktion wieder aufgerufen.

    im Netscape treten extreme verzögerungen auf.

    kommt mir bekannt vor, vielleicht hilft es erst ein anderes Gif zwischenzuladen o.ä..
    Hier geht es wohl auch um ein ähnliches Thema: http://forum.de.selfhtml.org/archiv/2003/9/t57987/#m325302.

    Hast du einen Beispiellink?

    Grüsse

    Cyx23

    1. Hi

      Hier geht es wohl auch um ein ähnliches Thema: http://forum.de.selfhtml.org/archiv/2003/9/t57987/#m325302.

      »»
      Leider wird hier auch keine richtige lösung gefunden

      kommt mir bekannt vor, vielleicht hilft es erst ein anderes Gif zwischenzuladen o.ä..

      Du meinst um den cache zu leeren?

      aber wenn das Bild denselben namen hat verändert sich ja nichts.

      wüßte gerade nicht wie sowas konkret aussehen könnte--

      aber danke

      gibt es vielleicht einen direkten Befehl, der das wiederabspielen des gifs erzwingt.

      und im gegensatz was in dem Link berichtet wird, funktioniert mein rollover im opera( genauso wie im ie)
      nur im netscape/mozilla eben nicht.

      Hast du einen Beispiellink?

      »»

      hab leider noch kein webspace-sorry

      mach alles auf dem Testserver.

      grüße von mir Carsten

      1. Hallo,

        mach alles auf dem Testserver.

        wie schaut denn dein Code aus?

        Grüsse

        Cyx23

        1. hallo

          also ich denke, das der code ok ist.

          glaub das ist ganz klassisch:

          vorbild war ein BSp in SelfHTML

          bei mouseOver sollen nach einer bestimmten logik Bilder ausgetauscht werden.

          das problem liegt einfach nur an dem Tempo des abspielens der gifs. Und an der vollständigkeit des abspielens der gifs: der Netscape zeigt immer nur das letzte bild an.

          ie und opera schaffen das problemlos

          also:( sorry wegen den PHP schnipseln im Code)

          pf_basis = new Image();
                pf_basis.src ="images/pf_basis_".$bilder_gr_in."_".$navi_in.".gif";     /* erste Standard-Grafik */

          pf_re = new Image();
                pf_re.src = "images/pf_re_".$bilder_gr_in."_".$navi_in.".gif";     /* erste Standard-Grafik */

          pf_rewe = new Image();
                pf_rewe.src = "images/pf_rewe_".$bilder_gr_in."_".$navi_in.".gif";     /* erste Standard-Grafik */

          pf_gre = new Image();
                pf_gre.src = "images/pf_gre_".$bilder_gr_in."_".$navi_in.".gif";     /* erste Standard-Grafik */

          pf_grewe = new Image();
                pf_grewe.src = "images/pf_grewe_".$bilder_gr_in."_".$navi_in.".gif";     /* erste Standard-Grafik */

          pf_li = new Image();
                pf_li.src = "images/pf_li_".$bilder_gr_in."_".$navi_in.".gif";     /* erste Standard-Grafik */

          pf_liwe = new Image();
                pf_liwe.src = "images/pf_liwe_".$bilder_gr_in."_".$navi_in.".gif";     /* erste Standard-Grafik */

          pf_gli = new Image();
                pf_gli.src = "images/pf_gli_".$bilder_gr_in."_".$navi_in.".gif";     /* erste Standard-Grafik */

          pf_gliwe = new Image();
                pf_gliwe.src = "images/pf_gliwe_".$bilder_gr_in."_".$navi_in.".gif";     /* erste Standard-Grafik */

          pf_ob = new Image();
                pf_ob.src = "images/pf_ob_".$bilder_gr_in."_".$navi_in.".gif";     /* erste Standard-Grafik */

          pf_un = new Image();
                pf_un.src = "images/pf_un_".$bilder_gr_in."_".$navi_in.".gif";     /* erste Standard-Grafik */

          pf_wue = new Image();
                pf_wue.src = "images/pf_wue_".$bilder_gr_in."_".$navi_in.".gif";     /* erste Standard-Grafik */

          function BiWeNav2 (BiWech)     {
                     var bild = window.document.images[1].src;

          switch(bild) {

          case "http://localhost/homepage_2/images/pf_re_".$bilder_gr_in."_".$navi_in.".gif":
                           if(BiWech == pf_gre) {
                            window.document.images[1].src = pf_grewe.src;
                           } else {
                            window.document.images[1].src = BiWech.src;
                               };break;
                      case "http://localhost/homepage_2/images/pf_gre_".$bilder_gr_in."_".$navi_in.".gif":
                           if(BiWech == pf_re) {
                            window.document.images[1].src = pf_rewe.src;
                           } else {
                            window.document.images[1].src = BiWech.src;
                               };break;
                      case "http://localhost/homepage_2/images/pf_li_".$bilder_gr_in."_".$navi_in.".gif":
                           if(BiWech == pf_gli) {
                            window.document.images[1].src = pf_gliwe.src
                           } else {
                            window.document.images[1].src = BiWech.src;
                               };break;
                      case "http://localhost/homepage_2/images/pf_gli_".$bilder_gr_in."_".$navi_in.".gif":
                           if(BiWech == pf_li) {
                            window.document.images[1].src = pf_liwe.src
                           } else {
                            window.document.images[1].src = BiWech.src;
                               };break;
                      case "http://localhost/homepage_2/images/pf_rewe_".$bilder_gr_in."_".$navi_in.".gif":
                           if(BiWech == pf_gre) {
                            window.document.images[1].src = pf_grewe.src;
                           } else {
                            window.document.images[1].src = BiWech.src;
                               };break;
                      case "http://localhost/homepage_2/images/pf_grewe_".$bilder_gr_in."_".$navi_in.".gif":
                           if(BiWech == pf_re) {
                            window.document.images[1].src = pf_rewe.src;
                           } else {
                            window.document.images[1].src = BiWech.src;
                               };break;
                      case "http://localhost/homepage_2/images/pf_liwe_".$bilder_gr_in."_".$navi_in.".gif":
                           if(BiWech == pf_gli) {
                            window.document.images[1].src = pf_gliwe.src
                           } else {
                            window.document.images[1].src = BiWech.src;
                               };break;
                      case "http://localhost/homepage_2/images/pf_gliwe_".$bilder_gr_in."_".$navi_in.".gif":
                           if(BiWech == pf_li) {
                            window.document.images[1].src = pf_liwe.src
                           } else {
                            window.document.images[1].src = BiWech.src;
                               };break;
                      case "http://localhost/homepage_2/images/pf_ob_".$bilder_gr_in."_".$navi_in.".gif":
                           window.document.images[1].src = BiWech.src;
                               break;
                      case "http://localhost/homepage_2/images/pf_un_".$bilder_gr_in."_".$navi_in.".gif":
                           window.document.images[1].src = BiWech.src;
                           break;
                      case "http://localhost/homepage_2/images/pf_wue_".$bilder_gr_in."_".$navi_in.".gif":
                           window.document.images[1].src = BiWech.src;
                               break;
                      default:
                           window.document.images[1].src = BiWech.src;
                               break;
                      };
                  }

          Grüße und Danke

          carsten

          1. Hallo,

            leider ist dein Code als Testumgebung nicht gut geeignet.

            Du solltest das Ganze auf ein einfaches Modell reduzieren, dann läßt sich besser damit arbeiten.

            Folgender Code dürfte mit allen "aktuellen" Browsern funktionieren:

            <img src="a.gif" height="40" width="40" border="1"
            onmouseover="this.src='b.gif'"
            onmouseout="this.src='a.gif'"
            alt="">

            Das Grundproblem wird also wohl durch die direkte Zuweisung der Bilddatei umgangen, so hab ich das
            auch in Erinnerung, nur per 'Suchen' hier nicht gefunden (kann 2001 o.ä. gewesen sein, leider gibt
            es da Lücken im Archiv)

            Du kannst ja testen ob es auch mit dem reduzierten Code Tempoprobleme gibt, und falls nicht, dann
            mal schauen du es so einfach lösen kannst oder ob doch eine Funktion nötig ist.

            Grüsse

            Cyx23

  2. dies ist noch ein Link, den ich gefunden habe:

    http://forum.de.selfhtml.org/archiv/2005/7/t111802/#m704949

    Grüße Carten